{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "initial_id",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:34.912348Z",
     "start_time": "2025-01-24T04:13:34.905563Z"
    },
    "collapsed": true,
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:40.858850Z",
     "iopub.status.busy": "2025-01-24T04:20:40.858690Z",
     "iopub.status.idle": "2025-01-24T04:20:46.207168Z",
     "shell.execute_reply": "2025-01-24T04:20:46.206561Z",
     "shell.execute_reply.started": "2025-01-24T04:20:40.858830Z"
    },
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      "  from .autonotebook import tqdm as notebook_tqdm\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sys.version_info(major=3, minor=10, micro=14, releaselevel='final', serial=0)\n",
      "matplotlib 3.10.0\n",
      "numpy 1.26.4\n",
      "pandas 2.2.3\n",
      "sklearn 1.6.0\n",
      "torch 2.5.1+cu124\n",
      "cuda:0\n"
     ]
    }
   ],
   "source": [
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import sklearn\n",
    "import pandas as pd\n",
    "import os\n",
    "import sys\n",
    "import time\n",
    "from tqdm.auto import tqdm\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "\n",
    "print(sys.version_info)\n",
    "for module in mpl, np, pd, sklearn, torch:\n",
    "    print(module.__name__, module.__version__)\n",
    "\n",
    "device = torch.device(\"cuda:0\") if torch.cuda.is_available() else torch.device(\"cpu\")\n",
    "print(device)\n",
    "\n",
    "seed = 42"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8d5488202f3a7bd8",
   "metadata": {},
   "source": [
    "## 准备数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "99e15a8bf4ac2398",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:38.184139Z",
     "start_time": "2025-01-24T04:13:35.054391Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:46.208722Z",
     "iopub.status.busy": "2025-01-24T04:20:46.208316Z",
     "iopub.status.idle": "2025-01-24T04:20:53.447188Z",
     "shell.execute_reply": "2025-01-24T04:20:53.446606Z",
     "shell.execute_reply.started": "2025-01-24T04:20:46.208699Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2025-01-24 12:20:46.747791: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n",
      "2025-01-24 12:20:47.082198: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:477] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
      "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
      "E0000 00:00:1737692447.211815     351 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
      "E0000 00:00:1737692447.247901     351 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
      "2025-01-24 12:20:47.561288: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
      "To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
     ]
    }
   ],
   "source": [
    "from tensorflow import keras\n",
    "\n",
    "# 用karas有的数据集imdb，电影分类,分电影是积极的，还是消极的\n",
    "imdb = keras.datasets.imdb\n",
    "\n",
    "# 载入数据使用下面两个参数\n",
    "# 词典大小，仅保留训练数据中前10000个最经常出现的单词，低频单词被舍弃\n",
    "# 前一万个词出现词频最高的会保留下来进行处理，后面的作为特殊字符处理，\n",
    "vocab_size = 10000\n",
    "index_from = 3  # 0,1,2,3空出来做别的事\n",
    "# 小于3的id都是特殊字符\n",
    "# 需要注意的一点是取出来的词表还是从1开始的，需要做处理\n",
    "\n",
    "# 下载数据集，并将数据集分为训练集和测试集\n",
    "(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=vocab_size, index_from=index_from)\n",
    "# train_data和test_data的类型都是列表的列表\n",
    "# 每个列表代表对应文本中每个单词的id值所组成的列表，只记录出现频率最高的前10000个单词\n",
    "# train_labels和test_labels的类型都是numpy.ndarray类型列表,是二分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ba986276e2fb2d8c",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:38.238840Z",
     "start_time": "2025-01-24T04:13:38.185140Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:53.448715Z",
     "iopub.status.busy": "2025-01-24T04:20:53.448284Z",
     "iopub.status.idle": "2025-01-24T04:20:53.490399Z",
     "shell.execute_reply": "2025-01-24T04:20:53.489922Z",
     "shell.execute_reply.started": "2025-01-24T04:20:53.448693Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "88584\n",
      "<class 'dict'>\n"
     ]
    }
   ],
   "source": [
    "# 载入词表，看下词表长度，词表就像英语字典\n",
    "word_index = imdb.get_word_index()\n",
    "print(len(word_index))\n",
    "print(type(word_index))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "efa6a9ce868c9b65",
   "metadata": {},
   "source": [
    "## 构造 word2idx 和 idx2word"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "270bc30c8df50599",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:38.271796Z",
     "start_time": "2025-01-24T04:13:38.238840Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:53.491381Z",
     "iopub.status.busy": "2025-01-24T04:20:53.490995Z",
     "iopub.status.idle": "2025-01-24T04:20:53.519349Z",
     "shell.execute_reply": "2025-01-24T04:20:53.518849Z",
     "shell.execute_reply.started": "2025-01-24T04:20:53.491361Z"
    }
   },
   "outputs": [],
   "source": [
    "# 0,1,2,3空出来做别的事,这里的idx是从1开始的,所以加3\n",
    "word2idx = {word: idx + 3 for word, idx in word_index.items()}\n",
    "\n",
    "word2idx.update({\n",
    "    \"[PAD]\": 0,  # 填充 token\n",
    "    \"[BOS]\": 1,  # begin of sentence，句子开始\n",
    "    \"[UNK]\": 2,  # 未知 token\n",
    "    \"[EOS]\": 3  # end of sentence，句子结束\n",
    "})\n",
    "\n",
    "# # 反向词典,id变为单词\n",
    "idx2word = {idx: word for word, idx in word2idx.items()}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "3425a418cd0677a5",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:39.123672Z",
     "start_time": "2025-01-24T04:13:38.273800Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:53.520289Z",
     "iopub.status.busy": "2025-01-24T04:20:53.520052Z",
     "iopub.status.idle": "2025-01-24T04:20:54.518008Z",
     "shell.execute_reply": "2025-01-24T04:20:54.517355Z",
     "shell.execute_reply.started": "2025-01-24T04:20:53.520269Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAO+RJREFUeJzt3Xl4FFW+//FPb4mJZjGBbGPYlUUCAmqIC8IlCnFFcAYUHVAGRAMjoIjxqqDee8Oo4zKKOI4Kziji6GVxcMSHHZeAgCAgiIAoqAkwMiQskvRyfn94qZ8t6UCgU90N79fz1OPpqtPV3zq0qW+fU3XKYYwxAgAAiCLOSAcAAADwSyQoAAAg6pCgAACAqEOCAgAAog4JCgAAiDokKAAAIOqQoAAAgKhDggIAAKKOO9IBHI9AIKDvv/9eSUlJcjgckQ4HAAAcA2OM9u3bp5ycHDmddfeRxGSC8v333ys3NzfSYQAAgOOwY8cOnXXWWXXWickEJSkpSdJPB5icnBzhaAAAwLGoqqpSbm6udR6vS0wmKIeHdZKTk0lQYojf79eyZcskSV27dpXL5YpwRACASDiWyzNiMkFBbPL7/Zo/f74k6YILLiBBAQCERIIC2zidTnXs2NEqAwAQCgkKbON2u9WnT59IhwEAiAH1SlBKS0s1Y8YMffHFF0pISNBFF12kP/zhD2rdurVV59ChQ7r77rs1ffp0VVdXq1evXnr++eeVmZlp1dm+fbvuuOMOLVq0SGeccYYGDRqk0tJSud3kSwBwMjDGyOfzye/3RzoU2MjlcsntdodlCpB6ZQRLlixRcXGxLrjgAvl8Pt1///264oortGHDBp1++umSpNGjR+vdd9/VW2+9pZSUFI0YMUJ9+/bVRx99JOmn6xCuuuoqZWVl6eOPP1Z5ebl++9vfyuPx6H/+539O+IAAAJFVU1Oj8vJyHTx4MNKhIAISExOVnZ2tuLi4E9qPwxhjjvfNu3fvVkZGhpYsWaJu3bqpsrJSjRs31rRp03TDDTdIkr744gu1bdtWZWVl6tq1q9577z1dffXV+v77761elRdeeEHjxo3T7t27j+mAqqqqlJKSosrKSu7iiSE1NTV68sknJUljxow54S8vgOgTCAS0efNmuVwuNW7cWHFxcUyoeYowxqimpka7d++W3+/X2WeffcT1hvU5f5/QmEplZaUkKS0tTZK0atUqeb1eFRYWWnXatGmjJk2aWAlKWVmZ8vLygoZ8evXqpTvuuEOff/65OnXqdMTnVFdXq7q6OugAEZt+/u8I4ORTU1OjQCCg3NxcJSYmRjoc2CwhIUEej0fffPONampqdNpppx33vo47QQkEAho1apQuvvhitW/fXpJUUVGhuLg4paamBtXNzMxURUWFVefnycnh7Ye31aa0tFQPP/zw8YaKKOHxeDRixAirDODkxZ16p65w/dsf916Ki4u1fv16TZ8+PSyB1KWkpESVlZXWsmPHjgb/TISfw+FQenq60tPT6fIFANTpuBKUESNGaM6cOVq0aFHQXPpZWVmqqanR3r17g+rv3LlTWVlZVp2dO3cesf3wttrEx8dbs8YyeywA4GTncDg0a9asSIchSZowYYLOO+882z+3XgmKMUYjRozQzJkztXDhQjVv3jxoe5cuXeTxeLRgwQJr3aZNm7R9+3YVFBRIkgoKCrRu3Trt2rXLqjNv3jwlJyerXbt2J3IsiHJ+v1+ffPKJPvnkE249BIAoFE2JUb2uQSkuLta0adM0e/ZsJSUlWdeMpKSkKCEhQSkpKRoyZIjGjBmjtLQ0JScna+TIkSooKFDXrl0lSVdccYXatWunW265RY899pgqKir0wAMPqLi4WPHx8eE/QkQNv9+v9957T5J03nnnMdU9ACCkevWgTJ48WZWVlerevbuys7Ot5c0337TqPPXUU7r66qvVr18/devWTVlZWZoxY4a13eVyac6cOXK5XCooKNDNN9+s3/72t3rkkUfCd1SISk6nU+3atVO7du24gA5A1OnevbtGjhypUaNG6cwzz1RmZqb+8pe/6MCBA7r11luVlJSkVq1aWT+0pJ9+eA0ZMkTNmzdXQkKCWrdurWeeecbafujQIZ177rkaNmyYtW7r1q1KSkrSK6+8csyx7dixQ7/5zW+UmpqqtLQ0XXfddfr666+t7YMHD1afPn30xBNPKDs7W+np6SouLpbX67XqlJeX66qrrlJCQoKaN2+uadOmqVmzZnr66aclSc2aNZMkXX/99XI4HNbrw/72t7+pWbNmSklJ0YABA7Rv375jjv+4mBhUWVlpJJnKyspIhwIA+Jkff/zRbNiwwfz4449HbKuurjbV1dUmEAhY63w+n6murjZerzesdY/HZZddZpKSksyjjz5qvvzyS/Poo48a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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 获取 max_length\n",
    "length_collect = {}\n",
    "\n",
    "#统计样本中每个长度出现的次数\n",
    "for text in train_data:\n",
    "    length = len(text)  # 句子长度\n",
    "    # 如果 length 已经存在于 length_collect 字典中，则将其对应的值加 1。\n",
    "    # 如果 length 不存在于 length_collect 字典中，则将其添加到字典中，并将其值初始化为 1。\n",
    "    length_collect[length] = length_collect.get(length, 0) + 1  # 统计每个长度出现的次数\n",
    "\n",
    "MAX_LENGTH = 500\n",
    "plt.bar(length_collect.keys(), length_collect.values())  # 画出每个长度出现的次数的柱状图\n",
    "# axvline():用于在图表中绘制一条垂直于 x 轴的直线。第一个参数是指定直线的位置。\n",
    "plt.axvline(MAX_LENGTH, label=\"max length\", c=\"gray\", ls=\":\")\n",
    "\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "83e8b75c0824ebbe",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:39.288922Z",
     "start_time": "2025-01-24T04:13:39.124675Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:54.520785Z",
     "iopub.status.busy": "2025-01-24T04:20:54.520309Z",
     "iopub.status.idle": "2025-01-24T04:20:54.705038Z",
     "shell.execute_reply": "2025-01-24T04:20:54.704378Z",
     "shell.execute_reply.started": "2025-01-24T04:20:54.520760Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 相对句子长度画个直方图，看看长度分布\n",
    "length_list = [len(text) for text in train_data]\n",
    "plt.hist(length_list, bins=50)\n",
    "plt.xlabel(\"length\")\n",
    "plt.ylabel(\"frequency\")\n",
    "plt.axvline(500, label=\"max length\", c=\"gray\", ls=\":\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5b9c3c5072d49c29",
   "metadata": {},
   "source": [
    "## Tokenizer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "b58b84ec603ebc7",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:39.309145Z",
     "start_time": "2025-01-24T04:13:39.289926Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:54.706219Z",
     "iopub.status.busy": "2025-01-24T04:20:54.705943Z",
     "iopub.status.idle": "2025-01-24T04:20:54.715418Z",
     "shell.execute_reply": "2025-01-24T04:20:54.714905Z",
     "shell.execute_reply.started": "2025-01-24T04:20:54.706189Z"
    }
   },
   "outputs": [],
   "source": [
    "class Tokenizer:\n",
    "    def __init__(self, word2idx, idx2word, max_length=500,\n",
    "                 pad_idx=0, bos_idx=1, eos_idx=3, unk_idx=2):\n",
    "        self.word2idx = word2idx  # 词典，单词->id\n",
    "        self.idx2word = idx2word  # 反向词典，id->单词\n",
    "        self.max_length = max_length\n",
    "        self.pad_idx = pad_idx  #填充\n",
    "        self.bos_idx = bos_idx  #开始\n",
    "        self.eos_idx = eos_idx  #结束\n",
    "        self.unk_idx = unk_idx  #未知，未出现在最高频词表中的词\n",
    "\n",
    "    def encode(self, test_list, padding_first=False):\n",
    "        \"\"\"\n",
    "        将文本列表转化为索引列表\n",
    "        :param test_list: 当前批次的文本列表\n",
    "        \"\"\"\n",
    "        # 最大长度，最大长度是500，\n",
    "        # 但是如果句子长度小于500，就取句子长度（句子长度是本组句子中最长的），\n",
    "        # 2是为了留出开始和结束的位置\n",
    "        max_length = min(self.max_length, 2 + max([len(text) for text in test_list]))\n",
    "        indices_list = []\n",
    "        for text in test_list:\n",
    "            # 直接切片取前max_length-2个单词，然后加上bos和eos\n",
    "            indices = [self.bos_idx] + [self.word2idx.get(word, self.unk_idx) for word in text[:max_length - 2]] + [\n",
    "                self.eos_idx]\n",
    "            if padding_first:  # 填充在最前面\n",
    "                indices = [self.pad_idx] * (max_length - len(indices)) + indices\n",
    "            else:  # 填充在最后面\n",
    "                indices = indices + [self.pad_idx] * (max_length - len(indices))\n",
    "            indices_list.append(indices)\n",
    "        return torch.tensor(indices_list)  # 二维列表转化为tensor\n",
    "\n",
    "    def decode(self, indices_list, remove_bos=True,\n",
    "               remove_eos=True, remove_pad=True, split=False):\n",
    "        \"\"\"\n",
    "        将索引列表转化为文本列表\n",
    "        \"\"\"\n",
    "        text_list = []\n",
    "        for indices in indices_list:\n",
    "            text = []\n",
    "            for index in indices:\n",
    "                word = self.idx2word.get(index, \"[UNK]\")\n",
    "                if remove_bos and word == \"[BOS]\": continue\n",
    "                if remove_eos and word == \"[EOS]\": break\n",
    "                if remove_pad and word == \"[PAD]\": break\n",
    "                text.append(word)\n",
    "            text_list.append(\" \".join(text) if not split else text)\n",
    "        return text_list\n",
    "\n",
    "\n",
    "tokenizer = Tokenizer(word2idx, idx2word, max_length=MAX_LENGTH)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4c5986d8827d9b25",
   "metadata": {},
   "source": [
    "## 数据集与DataLoader"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "73712533465907cc",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.201879Z",
     "start_time": "2025-01-24T04:13:39.311147Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:54.716497Z",
     "iopub.status.busy": "2025-01-24T04:20:54.716054Z",
     "iopub.status.idle": "2025-01-24T04:20:58.055194Z",
     "shell.execute_reply": "2025-01-24T04:20:58.054656Z",
     "shell.execute_reply.started": "2025-01-24T04:20:54.716466Z"
    }
   },
   "outputs": [],
   "source": [
    "from torch.utils.data import Dataset, DataLoader\n",
    "\n",
    "\n",
    "class IMDBDataset(Dataset):\n",
    "    def __init__(self, data, labels, remain_length=True):\n",
    "        if remain_length:  # 打印【BOS】，【EOS】，【PAD】\n",
    "            self.data = tokenizer.decode(data, remove_bos=False,\n",
    "                                         remove_eos=False, remove_pad=False)\n",
    "        else:  # 不打印【BOS】，【EOS】，【PAD】\n",
    "            self.data = tokenizer.decode(data)\n",
    "        self.labels = labels\n",
    "\n",
    "    def __getitem__(self, index):\n",
    "        text = self.data[index]\n",
    "        label = self.labels[index]\n",
    "        return text, label\n",
    "\n",
    "    def __len__(self):\n",
    "        return len(self.data)\n",
    "\n",
    "\n",
    "def collate_fct(batch):\n",
    "    \"\"\"\n",
    "    将batch数据处理成tensor形式\n",
    "    \"\"\"\n",
    "    # batch是128样本，每个样本类型是元组，第一个元素是文本，第二个元素是标签\n",
    "    text_list = [item[0].split() for item in batch]\n",
    "    label_list = [item[1] for item in batch]\n",
    "    # 文本转化为索引\n",
    "    text_list = tokenizer.encode(text_list, padding_first=True).to(dtype=torch.int)\n",
    "    # torch.tensor(label_list):将 Python 列表 label_list 转换为 PyTorch 张量。\n",
    "    # .reshape(-1, 1):将张量的形状重塑为 (n, 1)，其中 n 是 label_list 的长度。\n",
    "    # .to(dtype=torch.float):将张量的数据类型转换为 float。\n",
    "    return text_list, torch.tensor(label_list).reshape(-1, 1).to(dtype=torch.float)\n",
    "\n",
    "\n",
    "# 用RNN，缩短序列长度\n",
    "train_ds = IMDBDataset(train_data, train_labels, remain_length=False)\n",
    "test_ds = IMDBDataset(test_data, test_labels, remain_length=False)\n",
    "\n",
    "batch_size = 128\n",
    "# collate_fn是处理batch的函数\n",
    "train_loader = DataLoader(train_ds, batch_size=batch_size,\n",
    "                          shuffle=True, collate_fn=collate_fct)\n",
    "test_loader = DataLoader(test_ds, batch_size=batch_size,\n",
    "                         shuffle=False, collate_fn=collate_fct)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7001311e460c0b99",
   "metadata": {},
   "source": [
    "## 定义模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "22ab9152ea499fd4",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.207914Z",
     "start_time": "2025-01-24T04:13:41.202881Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.056041Z",
     "iopub.status.busy": "2025-01-24T04:20:58.055853Z",
     "iopub.status.idle": "2025-01-24T04:20:58.061792Z",
     "shell.execute_reply": "2025-01-24T04:20:58.061222Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.056021Z"
    }
   },
   "outputs": [],
   "source": [
    "class LSTM(nn.Module):\n",
    "    # LSTM模型的参数量是RNN模型的4倍\n",
    "    def __init__(self, embedding_dim=16, hidden_dim=64, vocab_size=vocab_size,\n",
    "                 num_layers=1, bidirectional=False):\n",
    "        super(LSTM, self).__init__()\n",
    "        # 词嵌入层\n",
    "        self.embedding = nn.Embedding(vocab_size, embedding_dim)\n",
    "        # LSTM层\n",
    "        # 输入维度是embedding_dim，隐藏层维度是hidden_dim，有num_layers层，\n",
    "        # batch_first: 输入输出的格式，默认是(seq,batch,feature)，设置为True后为(batch,seq,feature)\n",
    "        # bidirectional=True表示使用双向LSTM\n",
    "        self.lstm = nn.LSTM(embedding_dim, hidden_dim, num_layers=num_layers,\n",
    "                            batch_first=True, bidirectional=bidirectional)\n",
    "        self.layer = nn.Linear(hidden_dim * (2 if bidirectional else 1), hidden_dim)\n",
    "        self.fc = nn.Linear(hidden_dim, 1)\n",
    "\n",
    "    def forward(self, x):\n",
    "        # [bacth_size,seq_len,vocab_size]->[batch_size,seq_len,embedding_dim]\n",
    "        # [batch_size, 500,10000]->[batch_size, 500,16]\n",
    "        x = self.embedding(x)\n",
    "        # [batch_size,seq_len,embedding_dim]->[batch_size,seq_len,hidden_dim]\n",
    "        #                                   或[batch_size,seq_len,2*hidden_dim]\n",
    "        seq_output, (hidden, cell) = self.lstm(x)\n",
    "        \n",
    "        # print(seq_output.shape) # torch.Size([128, 500,64])\n",
    "        # print(hidden.shape) # torch.Size([1, 128, 64])\n",
    "        # print(cell.shape) # torch.Size([1, 128, 64])\n",
    "        # print(\"-\"*50)\n",
    "        # print(seq_output[:,-1,:].squeeze()==hidden.squeeze())  # 全为True\n",
    "        # print(\"-\"*50)\n",
    "        # print(seq_output[:,-1,:].squeeze()==cell.squeeze()) # 全为false\n",
    "        \n",
    "        # 取最后一个时间步的输出 (这也是为什么要设置padding_first=True的原因)\n",
    "        x = seq_output[:, -1, :]\n",
    "        # [batch_size,hidden_dim]或[batch_size,hidden_dim*2]->[batch_size,hidden_dim]\n",
    "        x = self.layer(x)\n",
    "        # [batch_size,hidden_dim]->[batch_size,1]\n",
    "        x=self.fc(x)\n",
    "        return  x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a203bd41c9db72e1",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.214467Z",
     "start_time": "2025-01-24T04:13:41.208918Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.063011Z",
     "iopub.status.busy": "2025-01-24T04:20:58.062541Z",
     "iopub.status.idle": "2025-01-24T04:20:58.065550Z",
     "shell.execute_reply": "2025-01-24T04:20:58.064966Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.062981Z"
    }
   },
   "outputs": [],
   "source": [
    "# model = LSTM()\n",
    "# #随机一个（128,500）的输入\n",
    "# sample_inputs = torch.randint(0, vocab_size, (128, 500))\n",
    "# sample_outputs = model(sample_inputs)\n",
    "# print(sample_outputs.shape) # torch.Size([128, 1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "806fc209f7870230",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.222495Z",
     "start_time": "2025-01-24T04:13:41.216469Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.066632Z",
     "iopub.status.busy": "2025-01-24T04:20:58.066239Z",
     "iopub.status.idle": "2025-01-24T04:20:58.092477Z",
     "shell.execute_reply": "2025-01-24T04:20:58.091927Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.066592Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "单层单向\n",
      "            embedding.weight            paramerters num: 160000\n",
      "           lstm.weight_ih_l0            paramerters num: 4096\n",
      "           lstm.weight_hh_l0            paramerters num: 16384\n",
      "            lstm.bias_ih_l0             paramerters num: 256\n",
      "            lstm.bias_hh_l0             paramerters num: 256\n",
      "              layer.weight              paramerters num: 4096\n",
      "               layer.bias               paramerters num: 64\n",
      "               fc.weight                paramerters num: 64\n",
      "                fc.bias                 paramerters num: 1\n"
     ]
    }
   ],
   "source": [
    "print(\"单层单向\")\n",
    "for key, value in LSTM().named_parameters():\n",
    "    print(f\"{key:^40}paramerters num: {np.prod(value.shape)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "fed2911ff9c09230",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.229792Z",
     "start_time": "2025-01-24T04:13:41.223497Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.093582Z",
     "iopub.status.busy": "2025-01-24T04:20:58.093188Z",
     "iopub.status.idle": "2025-01-24T04:20:58.100117Z",
     "shell.execute_reply": "2025-01-24T04:20:58.099553Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.093553Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "单层双向\n",
      "            embedding.weight            paramerters num: 160000\n",
      "           lstm.weight_ih_l0            paramerters num: 4096\n",
      "           lstm.weight_hh_l0            paramerters num: 16384\n",
      "            lstm.bias_ih_l0             paramerters num: 256\n",
      "            lstm.bias_hh_l0             paramerters num: 256\n",
      "       lstm.weight_ih_l0_reverse        paramerters num: 4096\n",
      "       lstm.weight_hh_l0_reverse        paramerters num: 16384\n",
      "        lstm.bias_ih_l0_reverse         paramerters num: 256\n",
      "        lstm.bias_hh_l0_reverse         paramerters num: 256\n",
      "              layer.weight              paramerters num: 8192\n",
      "               layer.bias               paramerters num: 64\n",
      "               fc.weight                paramerters num: 64\n",
      "                fc.bias                 paramerters num: 1\n"
     ]
    }
   ],
   "source": [
    "print(\"单层双向\")\n",
    "for key, value in LSTM(bidirectional=True).named_parameters():\n",
    "    print(f\"{key:^40}paramerters num: {np.prod(value.shape)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "adb61c1091d9fcd8",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.236530Z",
     "start_time": "2025-01-24T04:13:41.230794Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.101209Z",
     "iopub.status.busy": "2025-01-24T04:20:58.100822Z",
     "iopub.status.idle": "2025-01-24T04:20:58.107242Z",
     "shell.execute_reply": "2025-01-24T04:20:58.106728Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.101181Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "双层单向\n",
      "            embedding.weight            paramerters num: 160000\n",
      "           lstm.weight_ih_l0            paramerters num: 4096\n",
      "           lstm.weight_hh_l0            paramerters num: 16384\n",
      "            lstm.bias_ih_l0             paramerters num: 256\n",
      "            lstm.bias_hh_l0             paramerters num: 256\n",
      "           lstm.weight_ih_l1            paramerters num: 16384\n",
      "           lstm.weight_hh_l1            paramerters num: 16384\n",
      "            lstm.bias_ih_l1             paramerters num: 256\n",
      "            lstm.bias_hh_l1             paramerters num: 256\n",
      "              layer.weight              paramerters num: 4096\n",
      "               layer.bias               paramerters num: 64\n",
      "               fc.weight                paramerters num: 64\n",
      "                fc.bias                 paramerters num: 1\n"
     ]
    }
   ],
   "source": [
    "print(\"双层单向\")\n",
    "for key, value in LSTM(num_layers=2).named_parameters():\n",
    "    print(f\"{key:^40}paramerters num: {np.prod(value.shape)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "1e33e38523cade22",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.244134Z",
     "start_time": "2025-01-24T04:13:41.237532Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.108322Z",
     "iopub.status.busy": "2025-01-24T04:20:58.107856Z",
     "iopub.status.idle": "2025-01-24T04:20:58.115286Z",
     "shell.execute_reply": "2025-01-24T04:20:58.114778Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.108293Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "双层双向\n",
      "            embedding.weight            paramerters num: 160000\n",
      "           lstm.weight_ih_l0            paramerters num: 4096\n",
      "           lstm.weight_hh_l0            paramerters num: 16384\n",
      "            lstm.bias_ih_l0             paramerters num: 256\n",
      "            lstm.bias_hh_l0             paramerters num: 256\n",
      "       lstm.weight_ih_l0_reverse        paramerters num: 4096\n",
      "       lstm.weight_hh_l0_reverse        paramerters num: 16384\n",
      "        lstm.bias_ih_l0_reverse         paramerters num: 256\n",
      "        lstm.bias_hh_l0_reverse         paramerters num: 256\n",
      "           lstm.weight_ih_l1            paramerters num: 32768\n",
      "           lstm.weight_hh_l1            paramerters num: 16384\n",
      "            lstm.bias_ih_l1             paramerters num: 256\n",
      "            lstm.bias_hh_l1             paramerters num: 256\n",
      "       lstm.weight_ih_l1_reverse        paramerters num: 32768\n",
      "       lstm.weight_hh_l1_reverse        paramerters num: 16384\n",
      "        lstm.bias_ih_l1_reverse         paramerters num: 256\n",
      "        lstm.bias_hh_l1_reverse         paramerters num: 256\n",
      "              layer.weight              paramerters num: 8192\n",
      "               layer.bias               paramerters num: 64\n",
      "               fc.weight                paramerters num: 64\n",
      "                fc.bias                 paramerters num: 1\n"
     ]
    }
   ],
   "source": [
    "print(\"双层双向\")\n",
    "for key, value in LSTM(num_layers=2, bidirectional=True).named_parameters():\n",
    "    print(f\"{key:^40}paramerters num: {np.prod(value.shape)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9ef16b2489a34e67",
   "metadata": {},
   "source": [
    "## 训练模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "ff68a430988cfb82",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.355475Z",
     "start_time": "2025-01-24T04:13:41.245137Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.116317Z",
     "iopub.status.busy": "2025-01-24T04:20:58.116066Z",
     "iopub.status.idle": "2025-01-24T04:20:58.216566Z",
     "shell.execute_reply": "2025-01-24T04:20:58.216107Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.116290Z"
    }
   },
   "outputs": [],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "\n",
    "@torch.no_grad()  # 装饰器，禁止梯度计算\n",
    "def evaluate(model, data_loader, loss_fct):\n",
    "    loss_list = []\n",
    "    pred_list = []\n",
    "    label_list = []\n",
    "    for datas, labels in data_loader:\n",
    "        datas = datas.to(device)\n",
    "        labels = labels.to(device)\n",
    "\n",
    "        # 前向传播\n",
    "        logits = model(datas)\n",
    "        loss = loss_fct(logits, labels)  # 验证集损失\n",
    "        # tensor.item() 获取tensor的数值，loss是只有一个元素的tensor\n",
    "        loss_list.append(loss.item())\n",
    "\n",
    "        # 二分类\n",
    "        preds = logits > 0  # 预测值大于0的为1，否则为0\n",
    "        pred_list.extend(preds.cpu().numpy().tolist())\n",
    "        label_list.extend(labels.cpu().numpy().tolist())\n",
    "\n",
    "    acc = accuracy_score(label_list, pred_list)  # 计算准确率\n",
    "    return np.mean(loss_list), acc  # # 返回验证集平均损失和准确率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "8c4b85e148a60f34",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.361148Z",
     "start_time": "2025-01-24T04:13:41.356477Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.217632Z",
     "iopub.status.busy": "2025-01-24T04:20:58.217165Z",
     "iopub.status.idle": "2025-01-24T04:20:58.222951Z",
     "shell.execute_reply": "2025-01-24T04:20:58.222388Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.217589Z"
    }
   },
   "outputs": [],
   "source": [
    "class SaveCheckpointsCallback:\n",
    "    def __init__(self, save_dir, save_step=500, save_best_only=True):\n",
    "        self.save_dir = save_dir  # 保存路径\n",
    "        self.save_step = save_step  # 保存步数\n",
    "        self.save_best_only = save_best_only  # 是否只保存最好的模型\n",
    "        self.best_metric = -1  # 最好的指标，指标不可能为负数，所以初始化为-1\n",
    "        # 创建保存路径\n",
    "        if not os.path.exists(self.save_dir):  # 如果不存在保存路径，则创建\n",
    "            os.makedirs(self.save_dir)\n",
    "\n",
    "    # 对象被调用时：当你将对象像函数一样调用时，Python 会自动调用 __call__ 方法。\n",
    "    # state_dict() 返回模型参数的字典，包括模型参数和优化器参数\n",
    "    # metric 是指标，可以是验证集的准确率，也可以是其他指标\n",
    "    def __call__(self, step, state_dict, metric=None):\n",
    "        if step % self.save_step > 0:\n",
    "            return  # 不是保存步数，则直接返回\n",
    "\n",
    "        if self.save_best_only:\n",
    "            assert metric is not None  # 必须传入metric\n",
    "            if metric >= self.best_metric:  # 如果当前指标大于最好的指标\n",
    "                # save checkpoint\n",
    "                # 保存最好的模型，覆盖之前的模型，不保存step，只保存state_dict，即模型参数，不保存优化器参数\n",
    "                torch.save(state_dict, os.path.join(self.save_dir, \"04_embedding_LSTM.ckpt\"))\n",
    "                self.best_metric = metric  # 更新最好的指标\n",
    "        else:\n",
    "            # 保存模型\n",
    "            torch.save(state_dict, os.path.join(self.save_dir, f\"{step}.ckpt\"))\n",
    "            # 保存每个step的模型，不覆盖之前的模型，保存step，保存state_dict，即模型参数，不保存优化器参数\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "a3f65b1f7f9b4dff",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.367239Z",
     "start_time": "2025-01-24T04:13:41.362155Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.224105Z",
     "iopub.status.busy": "2025-01-24T04:20:58.223704Z",
     "iopub.status.idle": "2025-01-24T04:20:58.229027Z",
     "shell.execute_reply": "2025-01-24T04:20:58.228453Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.224076Z"
    }
   },
   "outputs": [],
   "source": [
    "class EarlyStopCallback:\n",
    "    def __init__(self, patience=5, min_delta=0.01):\n",
    "        self.patience = patience  # 多少个step没有提升就停止训练\n",
    "        self.min_delta = min_delta  # 最小的提升幅度\n",
    "        self.best_metric = -1  # 记录的最好的指标\n",
    "        self.counter = 0  # 计数器，记录连续多少个step没有提升\n",
    "\n",
    "    def __call__(self, metric):\n",
    "        if metric >= self.best_metric + self.min_delta:  # 如果指标提升了\n",
    "            self.best_metric = metric  # 更新最好的指标\n",
    "            self.counter = 0  # 计数器清零\n",
    "        else:\n",
    "            self.counter += 1  # 计数器加一\n",
    "\n",
    "    @property  # 使用@property装饰器，使得 对象.early_stop可以调用，不需要()\n",
    "    def early_stop(self):\n",
    "        # 如果计数器大于等于patience，则返回True，停止训练\n",
    "        return self.counter >= self.patience"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "9d1b64287652db63",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.375978Z",
     "start_time": "2025-01-24T04:13:41.369243Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.232418Z",
     "iopub.status.busy": "2025-01-24T04:20:58.232108Z",
     "iopub.status.idle": "2025-01-24T04:20:58.240394Z",
     "shell.execute_reply": "2025-01-24T04:20:58.239922Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.232399Z"
    }
   },
   "outputs": [],
   "source": [
    "def training(model,\n",
    "             train_loader,\n",
    "             val_loader,\n",
    "             epoch,\n",
    "             loss_fct,\n",
    "             optimizer,\n",
    "             save_ckpt_callback=None,\n",
    "             early_stop_callback=None,\n",
    "             eval_step=500,\n",
    "             ):\n",
    "    record_dict = {\n",
    "        \"train\": [],\n",
    "        \"val\": []\n",
    "    }\n",
    "\n",
    "    global_step = 0  # 全局步数\n",
    "    model.train()  # 训练模式\n",
    "    with tqdm(total=epoch * len(train_loader)) as pbar:\n",
    "        for epoch_id in range(epoch):\n",
    "            for datas, labels in train_loader:\n",
    "                datas = datas.to(device)\n",
    "                labels = labels.to(device)\n",
    "\n",
    "                # 前向传播\n",
    "                logits = model(datas)\n",
    "                loss = loss_fct(logits, labels)  # 训练集损失\n",
    "                #当sigmoid输出大于0.5时，预测为1，否则预测为0，这里大于0，刚好sigmoid的值是0.5，预测为1\n",
    "                preds = logits > 0\n",
    "\n",
    "                # 反向传播\n",
    "                optimizer.zero_grad()  # 梯度清零\n",
    "                loss.backward()  # 反向传播\n",
    "                optimizer.step()  # 优化器更新参数\n",
    "\n",
    "                # 计算准确率\n",
    "                acc = accuracy_score(labels.cpu().numpy(), preds.cpu().numpy())\n",
    "                loss = loss.cpu().item()\n",
    "\n",
    "                record_dict[\"train\"].append({\n",
    "                    \"loss\": loss,\n",
    "                    \"acc\": acc,\n",
    "                    \"step\": global_step\n",
    "                })\n",
    "\n",
    "                # 评估\n",
    "                if global_step % eval_step == 0:\n",
    "                    model.eval()  # 评估模式\n",
    "                    # 验证集损失和准确率\n",
    "                    val_loss, val_acc = evaluate(model, val_loader, loss_fct)\n",
    "                    record_dict[\"val\"].append({\n",
    "                        \"loss\": val_loss,\n",
    "                        \"acc\": val_acc,\n",
    "                        \"step\": global_step\n",
    "                    })\n",
    "                    model.train()  # 训练模式\n",
    "\n",
    "                    # 2. 保存模型权重 save model checkpoint\n",
    "                    if save_ckpt_callback is not None:\n",
    "                        # model.state_dict() 返回模型参数的字典，包括模型参数和优化器参数\n",
    "                        save_ckpt_callback(global_step, model.state_dict(), val_acc)\n",
    "                        # 保存最好的模型，覆盖之前的模型，保存step，保存state_dict,通过metric判断是否保存最好的模型\n",
    "\n",
    "                    # 3. 早停 early stopping\n",
    "                    if early_stop_callback is not None:\n",
    "                        # 验证集准确率不再提升，则停止训练\n",
    "                        early_stop_callback(val_acc)\n",
    "                        # 验证集准确率不再提升，则停止训练\n",
    "                        if early_stop_callback.early_stop:\n",
    "                            print(f\"Early stop at epoch {epoch_id} / global_step {global_step}\")\n",
    "                            return record_dict  # 早停，返回记录字典 record_dict\n",
    "\n",
    "                # 更新进度条和全局步数\n",
    "                pbar.update(1)  # 更新进度条\n",
    "                global_step += 1  # 全局步数加一\n",
    "                pbar.set_postfix({\"epoch\": epoch_id})\n",
    "\n",
    "    return record_dict  # 训练结束，返回记录字典 record_dict\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "1764120147b79f6",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:13:41.382362Z",
     "start_time": "2025-01-24T04:13:41.376982Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.241243Z",
     "iopub.status.busy": "2025-01-24T04:20:58.241002Z",
     "iopub.status.idle": "2025-01-24T04:20:58.246515Z",
     "shell.execute_reply": "2025-01-24T04:20:58.245913Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.241219Z"
    }
   },
   "outputs": [],
   "source": [
    "def plot_record_curves(record_dict, sample_step=500):\n",
    "    # .set_index(\"step\") 将 step 列设置为 DataFrame 的索引\n",
    "    train_df = pd.DataFrame(record_dict[\"train\"]).set_index(\"step\").iloc[::sample_step]\n",
    "    val_df = pd.DataFrame(record_dict[\"val\"]).set_index(\"step\")\n",
    "\n",
    "    last_step = train_df.index[-1]  # 最后一步的步数\n",
    "\n",
    "    # print(train_df)\n",
    "    # print(val_df)\n",
    "\n",
    "    # 画图 \n",
    "    fig_num = len(train_df.columns)  # 画两张图,分别是损失和准确率\n",
    "\n",
    "    # plt.subplots：用于创建一个包含多个子图的图形窗口。\n",
    "    # 1：表示子图的行数为 1。\n",
    "    # fig_num：表示子图的列数，即子图的数量。\n",
    "    # figsize=(5 * fig_num, 5)：设置整个图形窗口的大小，宽度为 5 * fig_num，高度为 5。\n",
    "    # fig：返回的图形对象（Figure），用于操作整个图形窗口。\n",
    "    # axs：返回的子图对象（Axes 或 Axes 数组），用于操作每个子图。\n",
    "    fig, axs = plt.subplots(1, fig_num, figsize=(5 * fig_num, 5))\n",
    "    for idx, item in enumerate(train_df.columns):\n",
    "        # train_df.index 是 x 轴数据（通常是 step）。\n",
    "        # train_df[item] 是 y 轴数据（当前指标的值）。\n",
    "        axs[idx].plot(train_df.index, train_df[item], label=\"train:\" + item)\n",
    "        # val_df.index 是 x 轴数据。\n",
    "        # val_df[item] 是 y 轴数据。\n",
    "        axs[idx].plot(val_df.index, val_df[item], label=\"val:\" + item)\n",
    "        axs[idx].grid()  # 显示网格\n",
    "        axs[idx].legend()  # 显示图例\n",
    "        # axs[idx].set_xticks(range(0, train_df.index[-1] + 1, 5000))  # 设置x轴刻度\n",
    "        # axs[idx].set_xticklabels(map(lambda x: f\"{x // 1000}k\", range(0, last_step + 1, 5000)))  # 设置x轴标签\n",
    "        axs[idx].set_xlabel(\"step\")\n",
    "\n",
    "    plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "eb47aada8173cbab",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:14:07.182908Z",
     "start_time": "2025-01-24T04:13:41.383365Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:20:58.247602Z",
     "iopub.status.busy": "2025-01-24T04:20:58.247223Z",
     "iopub.status.idle": "2025-01-24T04:23:02.342924Z",
     "shell.execute_reply": "2025-01-24T04:23:02.342392Z",
     "shell.execute_reply.started": "2025-01-24T04:20:58.247572Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 14%|█▍        | 2744/19600 [01:57<12:03, 23.29it/s, epoch=13]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Early stop at epoch 14 / global_step 2744\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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n295X7m5ucrPP/+s5ObmVuh4b/7ylb76Sj8v11fL6rcU63f3K6bCArfHd+lXRkaGAigXLlyozOWixrtw4cJl/13y8/OVffv2Kfn5+fbHbDabkltotn9l5xcqp1IzlOz8wlKPO+PLZrNVqE/33ntvmWvTZ599pgDK4sWL7dem1atXK8nJycqNN95Y6tqUkJBQ6vUaNmyozJw5U7FarfZr09y5c5VRo0bZr02//PLLFWPavHmzMmjQIKVOnTpKaGio0qdPH2Xr1q2ljjl37pzy4IMPKlFRUYrRaFTatGmj/Pbbb/bn165dq/Tt21cJCAhQwsLClCFDhiiZmZnltlfez66iTCaT8vPPPysmk6nS53obX+mrr/TzpZ93KT1f+U1ZfzDV3aFU2JX+BpdUqRGdiIgIdDodqamppR5PTU0lJiam3HNefPFFxo0bxwMPPABA27Ztyc3N5cEHH+T5558vt/ym0WjEaDSWedxgMGAwGEo9ZrVa0Wg0aLVatFoteSYL1/zLPZ+U7nt1KIF+V5969e6773Lw4EGuueYaXn31VQD27t0LwHPPPcf06dNp3LgxtWvX5vjx41x//fW88cYbGI1GvvjiC2666SYSExNp0KCB/TU1Gk2pspivvfYab731FtOnT+e9995j3LhxHDt2jPDwcECdOz1+/Hj+9a9/lTq/+Ofx7LPP8uOPP/L555/TsGFD3nrrLYYPH05ycjLh4eH24hJLliwhIiKC5ORk8vPz0Wq1vP/++/z22298++23NGjQgOPHj3P8+PHLllrVarVoNJpyf75XUtnjvZmv9NVX+gkl+qoosPYdsOSjve4JiG7j7tBK8ZWfh7Plm620fmmZW9pWr01Xv9zPnj2bpKSkcq9Nzz77bJlr04gRI3j99dft16aRI0eWuTZd6pVXXuGtt97i7bff5r333mPs2LFXvDZlZ2dz77338t5776EoCu+88w4jRozg4MGDhISEYLPZGD58ONnZ2Xz11Vc0adKEffv22adB79ixg4EDB3Lfffcxe/Zs9Ho9q1evxmq1VuefVIga43hmHgs2H8ds1VBoqXmjr5VKdPz8/OjcuTMrV660L1y32WysXLmSyZMnl3tOXl5emTe4xX+AFKWmjpNdWa1atfDz8yMwMNCeIBZP/Xv11VcZPHiw/djw8HDat29v//61117jp59+4tdff73svzmo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oyNSBz4+PiQmJvLdd9+xYsUKXn31VR555BHWrVt3wfPz8/MZOnQoixcvPu+5tm3bNnW4IiLi4dQuidRMhY5IHdlsNkaOHMnIkSN57LHH6NSpE5988gl+fn6Ul5dXO3fIkCF8+OGHREREEBISUuNrbtmyhcLCQgIDAwFYu3YtwcHBxMTENGkuIiLi/tQuiVyYhq6J1MG6deuYN28eP/zwA+np6SxZsoTjx4/Tu3dvYmNj2bp1K6mpqZw4cYLS0lKmTZtGeHg4N954I2vWrOHAgQMkJyfz29/+liNHjlS9bklJCb/+9a/ZuXMny5YtY+7cucyePVvjoEVE5KLULonUTD06InUQEhLC6tWreeWVV8jNzaVTp068+OKLTJo0iWHDhpGcnMywYcPIz89n1apVjBkzhtWrV/PQQw8xZcoU8vLyaN++PWPHjq32l7SxY8fSvXt3Ro8eTXFxMbfddhuPP/64dYmKiIhbULskUjObYRiG1UGIeLO7776b7OxsPv30U6tDERERUbskHkP9jyIiIiIi4nFU6IiIiIiIiMfR0DUREREREfE46tERERERERGPo0JHREREREQ8jgodERERERHxOCp0RERERETE46jQERERERERj6NCR0REREREPI4KHRERERER8TgqdERERERExOOo0BEREREREY/z/yErRus1rf/vAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1000x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test loss: 0.3395, Test acc: 0.8673\n"
     ]
    }
   ],
   "source": [
    "epoch = 100\n",
    "\n",
    "# 单层单边\n",
    "model = LSTM()\n",
    "model.to(device)\n",
    "\n",
    "# 1. 定义损失函数 采用二进制交叉熵损失, 先sigmoid再计算交叉熵\n",
    "loss_fct = F.binary_cross_entropy_with_logits\n",
    "# 等价于 loss_fct =nn.BCEWithLogitsLoss()\n",
    "\n",
    "# 2. 定义优化器\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=0.001)\n",
    "\n",
    "# 3.save model checkpoint\n",
    "if not os.path.exists(\"checkpoints\"):\n",
    "    os.makedirs(\"checkpoints\")\n",
    "save_ckpt_callback = SaveCheckpointsCallback(save_dir=\"checkpoints\", save_step=len(train_loader), save_best_only=True)\n",
    "\n",
    "# 4. early stopping\n",
    "early_stop_callback = EarlyStopCallback(patience=5, min_delta=0.01)\n",
    "\n",
    "# 训练过程\n",
    "record_dict = training(\n",
    "    model,\n",
    "    train_loader,\n",
    "    test_loader,\n",
    "    epoch,\n",
    "    loss_fct,\n",
    "    optimizer,\n",
    "    save_ckpt_callback=save_ckpt_callback,\n",
    "    early_stop_callback=early_stop_callback,\n",
    "    eval_step=len(train_loader)\n",
    ")\n",
    "\n",
    "plot_record_curves(record_dict)  # 画图\n",
    "\n",
    "# 评估\n",
    "model.load_state_dict(\n",
    "    torch.load(\"checkpoints/04_embedding_LSTM.ckpt\", weights_only=True, map_location=device))  # 加载最好的模型\n",
    "\n",
    "model.eval()  # 评估模式\n",
    "loss, acc = evaluate(model, test_loader, loss_fct)\n",
    "print(f\"Test loss: {loss:.4f}, Test acc: {acc:.4f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "f80f38b5b1cb76be",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:14:07.183927Z",
     "start_time": "2025-01-24T04:14:07.183927Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:23:02.343975Z",
     "iopub.status.busy": "2025-01-24T04:23:02.343549Z",
     "iopub.status.idle": "2025-01-24T04:25:44.519648Z",
     "shell.execute_reply": "2025-01-24T04:25:44.519104Z",
     "shell.execute_reply.started": "2025-01-24T04:23:02.343952Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 18%|█▊        | 3528/19600 [02:38<12:00, 22.30it/s, epoch=17]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Early stop at epoch 18 / global_step 3528\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzoAAAHACAYAAABqJx3iAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAArhBJREFUeJzs3Xd8U/X+x/FXkqZ7UTopHWzKhkLLBtmiCLgQkKUCojgu6lWu66r3ij9FxMtVGQKKgnBliYAMQfYulL1LW0qhtBS6R5rk98dpyyrQfZrm83w88mhycs7JO2nT5tPv0pjNZjNCCCGEEEIIUY1o1Q4ghBBCCCGEEOVNCh0hhBBCCCFEtSOFjhBCCCGEEKLakUJHCCGEEEIIUe1IoSOEEEIIIYSodqTQEUIIIYQQQlQ7UugIIYQQQgghqh0pdIQQQgghhBDVjo3aAYrDZDIRHx+Pi4sLGo1G7ThCCGE1zGYzaWlp1KpVC61W/jdWQP4uCSGEeor7t8kiCp34+HgCAgLUjiGEEFbr4sWL1K5dW+0YVYb8XRJCCPU96G+TRRQ6Li4ugPJkXF1dS3y8wWBgw4YN9OnTB71eX97xKoQlZgbLzC2ZK48l5rb2zKmpqQQEBBT+HhYKa/y7BJaZ2xIzg2XmlsyVxxJzq/G3ySIKnYJuAa6urqX+g+Lo6Iirq6tF/TBYWmawzNySufJYYm7JrJDuWbezxr9LYJm5LTEzWGZuyVx5LDG3Gn+bpMO1EEIIIYQQotqRQkcIIYQQQghR7UihI4QQQgghhKh2LGKMjhCiajObzeTl5WE0Gu+7n8FgwMbGhuzs7AfuW1VU98w6nQ4bGxsZg1MB7ve+sMSfK7DM3CXJrNfr0el0lZRMCFHRpNARQpRJbm4uly9fJjMz84H7ms1mfH19uXjxosV8sLaGzI6Ojvj5+WFra1sJ6azDg94XlvhzBZaZuySZNRoNtWvXxtnZuZLSCSEqkhQ6QohSM5lMXLhwAZ1OR61atbC1tb3vBwmTyUR6ejrOzs4Ws/hkdc5sNpvJzc0lMTGRCxcu0KBBA4t5jlVZcd4XlvhzBZaZuyTvh8TEROLi4mjQoIG07AhRDZSq0Pnmm2/44osvuHLlCi1btmTGjBmEhYUVuW/37t3ZunXrXdv79+/PmjVrSvPwQogqIjc3F5PJREBAAI6Ojg/c32QykZubi729vUV9SKrOmR0cHNDr9cTExBQeI8qmOO8LS/y5AsvMXZLMXl5eREdHYzAYpNARohoo8W+pJUuWMGnSJD788EMOHjxIy5Yt6du3L1evXi1y/+XLl3P58uXCy7Fjx9DpdDz11FNlDi+EqBos5QOPKJp8/yqGvK6Wx1K64wkhiqfEv4WnTZvG2LFjGTNmDE2aNGHmzJk4Ojoyb968Ivf38PDA19e38LJx40YcHR2l0BFCCCGEEEJUmBJ1XcvNzSUiIoLJkycXbtNqtfTq1Yvdu3cX6xxz587lmWeewcnJ6Z775OTkkJOTU3g7NTUVUGZOMRgMJYlceNytXy2BJWYGy8wtmcuWw2w2YzKZMJlMD9zfbDYXfi3O/lWBNWQ2mUyYzeYiu+uo/TMmhBBClFaJCp2kpCSMRiM+Pj63bffx8eHUqVMPPH7fvn0cO3aMuXPn3ne/KVOm8NFHH921fcOGDcUaB3AvGzduLPWxarHEzGCZuSVzydnY2ODr60t6ejq5ubnFPi4tLa0CU1WM+2Vu0aIFEyZMYMKECaU+/0svvURKSgoLFy4s9TnuVNzXOTc3l6ysLLZt20ZeXt5t9xVnNj0hihIcHMzrr7/O66+/rnYUIYSVqtRZ1+bOnUvz5s3vOXFBgcmTJzNp0qTC26mpqQQEBNCnTx9cXV1L/LgGg4GNGzfSu3dv9Hp9iY9XgyVmBsvMLZlLLzs7m4sXL+Ls7FysQexms5m0tDRcXFxU7wvfo0cPWrZsyVdffXXf/YqTef/+/Tg5OZXpHzF6vR4bG5tS/Y67U0lf5+zsbBwcHOjatetd38eCFnVhHbp3706rVq2YPn16mc9V8L4QQgi1lKjQ8fT0RKfTkZCQcNv2hIQEfH1973tsRkYGixcv5uOPP37g49jZ2WFnZ3fXdr1eX6oPdcbMG+QZzaU+Xk2WmBksM7dkLjmj0YhGo0Gr1RZr4HVBN6qCY9R2vxxmsxmj0Vh4//32vbOVu7RZyut1KenrrNVq0Wg0Rf48Wdp7QlSsgkVQi8PLy6uC0wghxP2V6C+qra0toaGhbNq0qXCbyWRi06ZNdOjQ4b7H/vrrr+Tk5PDss8+WLmkpHT+8j+tfd0J/blWlPq4Q1spsNpOZm3fPS1au8b73l+VSMDblQUaPHs3WrVv5+uuvCwuMH374AY1Gwx9//EFoaCh2dnbs2LGD8+fPM2zYMPz8/HB2dqZdu3b8+eeft50vODj4tv+AazQavv/+ewYPHoyjoyMNGjRg1aqS/Q7Kycnh1VdfxdvbG3t7ezp37sz+/fsL779+/TrDhw/Hy8sLBwcHGjRowPz58wGlK9pbb72Fv78/9vb2BAUFMWXKlBI9vihfRb0vKvK9UFHvCwcHB/bs2cP58+cZOHAgPj4+Ffq+2L9/P71798bT0xM3Nze6devGwYMHb9vnxo0bjB8/Hh8fH+zt7WnWrBmrV68uvH/nzp08+uijODs7U6NGDfr27cv169eL9ZoIIUonJcvA0bgUVh+J59st53hn2RFGzNvPRwd1xN/IqrQcJe66NmnSJEaNGkXbtm0JCwtj+vTpZGRkMGbMGABGjhyJv7//XX9U586dy6BBg6hZs2b5JC8mY/Qe/EwJPJa5jKQDPfHsMLxSH18Ia5NlMNLkg/WqPPaJj/viaPvgX2tff/01Z86coVmzZoWtzMePHwfgnXfeYerUqdStW5caNWoQExND7969+eyzz3BwcGDBggUMGDCA06dPExgYeM/H+Oijj/j888/54osvmDFjBsOHDycmJgYPDw9A+RA4evRo/vnPfxZ5/N///neWLVvGjz/+SFBQEJ9//jl9+/bl3LlzeHh48P7773PixAn++OMPPD09OXfuHFlZyh+PGTNm8Mcff7B48WKCg4O5ePEiFy9eLMlLKcpZdXlfBAcHY2Njw40bN+jfvz///ve/sbOzq7D3RVpaGqNGjWLGjBmYzWa+/PJL+vfvz9mzZ3FxccFkMvHwww+TlpbGzz//TL169Thx4kThpBqRkZH07t2b4cOHM2PGDGxtbfnrr78wGo1leUmFsHomk5krqdnEXMvkYnImMckZxFzLJDZZudzIvNdENhpikjMJ8ip7N+3iKHGhM2TIEBITE/nggw+4cuUKrVq1Yt26dYVdN2JjY+/qKnH69Gl27NjBhg0byid1CTR/7BV+Px3BgMyVuG14DWo3hIB2lZ5DCFF1uLm5YWtri6OjY2G324IJVT7++GN69+5duK+7uzt16tTB1dUVrVbLJ598wooVK1i1ahUTJ06852OMHj2aoUOHAvDpp5/yn//8h3379tGvXz8A6tWrh6enZ5HHZmRk8N133/HDDz/w8MMPAzBnzhw2btzI3Llzeeutt4iNjaV169a0bdsWUD4gFoiNjaVevXp07twZnU5HUFBQKV8pYU2K874wmUykpqYSFBRE69atC4+tqPdFjx49bjt+9uzZuLu7s3XrVh599FH+/PNP9u3bx8mTJ2nYsCEAdevWLdz/888/p23btnz55ZeF7+GmTZuW5WUSwmpkG4xczC9cCoqYmGsZxCZncvF6Frl595/V09PZjqCajgR5OBLg4UhtdzsunY6khb9bJT2DUk5GMHHixHv+ItuyZctd2xo1alTspvPyptFoCHjqC/6cF0sv3UEMC59B/+Jf4H7v/zgJIUrPQa/jxMd9i7zPZDKRlpqGi6tLhYzRcdCXfSXzgsKhQHp6Ou+//z5//vknly9fJi8vj6ysLGJjY+97nhYtWhRed3JywtXV9baFlW/tAnyn8+fPYzAY6NSpU+E2vV5PWFgYJ0+eBGDChAk88cQTHDx4kD59+jBo0CA6duwIwKhRo+jTpw8hISH069ePRx99lD59+hT/RRDl7s73RUW/F+587LIq6n3x8ccfs2bNmgp9XyQkJPDee++xZcsWrl69itFoJDMzs/BxIiMjqV27dmGRc6fIyEiefPLJEj1XIayF2WzmeqbhZgFzLZOY/MIm9lomV1Kz73u8jVZD7RoOBNZ0IsjDkUAPRwJrOhJUU7l+Z0uywWBgbXwkTnaVNxdapc66ppamtWvwvNtL1Er9hCbZMZgXDUHz3Hqwr5xmMyGsiUajuWc3GZPJRJ6tDkdbmyoxGUFR7pwl6q233mLDhg1MnTqVhg0b4uDgwJNPPvnA6bTvHMSv0WjKdR2ehx9+mJiYGNauXcvGjRvp2bMnL7/8MlOnTqVNmzZERkayc+dONm/ezNNPP02vXr1YunRpuT2+KJk73xeW8F64VVHviz///JOpU6dSv379CntfjBo1imvXrvH1118TFBSEnZ0dHTp0KHwcBweH+z7eg+4XorrLM5q4nJJd2CoTk5yhdDW7phQzaTn3n1zExc6msHgJ8HAkyMOpsJDxc7PHRle1f39ZRaED0DvIlleO/p1F5nfxuXoClj4HQxeDzmpeAiHELWxtbYvVT3/Xrl0MGzaMwYMHo9VqSU9PJzo6ukKz1atXD1tbW3bu3FnY7cxgMLB///7b1iTx8vJi1KhRjBo1ii5duvDWW28xdepUAFxdXRkyZAhDhw7lySefpF+/fiQnJxeOhRCiKCV5X4wePZrBgwcDVNj7YufOnXz77bf0798fgIsXL5KUlFR4f4sWLYiLi+PMmTNFtuq0aNGCzZs337ZkhRDVTWZu3s3uZQVdzJIzib2WQdz1LPJM9+9V5etqf7M1prBVxolAD0dqOOpVXw6iLKzmU76rLQzuFsYLf77Jr3YfY39uI6z/B/T/XO1oQggVBAcHs3fvXqKjo3F2dr7nf5Xr16/P77//zhNPPIFOp+P9998vl5aZnj17Mnjw4CK7ATs5OTFhwgTeeustPDw8CAwM5PPPPyczM5Pnn38egA8++IDQ0FCaNm1KTk4Oq1evJiQkBICvvvoKNzc3OnbsiI2NDb/++iu+vr64u7uXObeo3kryvli+fDkDBgxAo9FU2PuiQYMG/PTTT7Rt25bU1FTeeuut21ppunXrRteuXXniiSeYNm0a9evX59SpU2g0Gvr168fkyZNp3rw5b7zxBq+88gr29vb89ddfPPXUU/ccIydEVZeSaeDLDafYflzHv45uITH9/i2ptjottT0cCPK4WcAEetxspbEvh+6tVZXVFDoAozsEsvhAU15LeYlZttNh3yzwbABhY9WOJoSoZG+++SajRo2iSZMmZGVlFU7NfKcvv/yS0aNH07lzZzw9PXn77bfLZRHN8+fP3/af6Tt99tlnmEwmRowYQVpaGm3btmX9+vXUqFEDUP7zPnnyZKKjo3FwcKBLly4sXrwYAGdnZ/7zn//w+uuvo9PpaNeuHWvXrrWILlJCXSV5X7zwwgt07NixQt8Xc+fOZdy4cbRp04aAgAA+/fRT3nzzzduOWbZsGW+++SZDhw4lIyOD+vXr89lnnwHQsGFD1q1bxzvvvEP79u1xcHAgPDy8cEIEISzNuatpjF0QwYWkDEADKEWOm4O+sEtZwdfA/G5mvq72aLWW2ypTFhqzWrMElEBqaipubm6kpKSUatVwg8HA2rVr6d+/PxtPJfHSwoNM1P/Om7pfQKOFYb9Cg14VkLz0bs1sSQv2WWJuyVx62dnZXLhwgTp16mBvb//A/QtmbCqY/cgSWEPm+30fy/r7t7q63+tSnPeFJf5cgWXmLknmkv5Oq0hV5fd8SUjmirXpZAKvLY4kPScPf3d7enhm8HivTtT1dsXNsWpnh/J9rYv7t8kyfkuVo4eb+RJWx4P/Gh5lj+vDYDbBr6Mh4YTa0YQQQgghhLiN2Wzmm7/O8cKCA6Tn5BFex4NlL7anrZeZZv6WUeSoxeoKHY1GwwePNkGj0TDi6lDSfMMhNw0WDYH0RLXjCSGEEEIIAUBWrpFXfjnEF+tPYzbDiPZB/PxCODWdbNWOZhGsrtABaObvxtOhARiwYULu65g96kJKLCweBob7zxkuhBBCCCFERbt0I4snZ+5i9ZHL6HUaPh3cnE8GNUNfxad0rkqs9pV6o29DnO1s2BFvZmOr/4C9G8Ttg99ehqo/bEkIIYQQQlRT+y4k89iMHRyPT6Wmky2LxrZnWLgsdl9SVlvoeLvY8/JD9QF4f0cOWY//CFobOLYUtnymcjohhBBCCGGNFu6NYdicPVzLyKVpLVdWvdKZdsGyBlppWG2hAzCmUzABHg4kpObwXXQtePQr5Y6tn8GRX9UNJ4QQQgghrIbBaOK9lUd5d8Ux8kxmHm3hx9IXO+Lv7vDgg0WRrLrQsdfr+MfDygJ7s7ZFcanuU9DxVeXO316C2L0qphNCCCGEENbgWnoOw7/fy897YtFo4K2+jZgxtDUOttV3Mc/KYNWFDkC/Zr6E1/EgJ8/EZ3+cgl4fQeNHwZirTE5wPVrtiEIIIYQQopo6Hp/CY//dyb4LyTjb2fD9yLa8/FB9NBrrXOSzPFl9oaPRaHj/0SZoNPD74XgiLt6Ax2eDX0vITFKmnc5OUTumEKKKCQ4OZvr06fe8/4cffsDd3b3S8ghRFTzofSGEuN2aI5d58rvdXLqRRR1PJ1a+3JGeIT5qx6o2rL7QAWW66SFtAwD46PcTmGwcYehicPGDxFPKgqLGPHVDCiGEEMIqmM1m9kQlk2NUO4moKCaTmS83nOblRQfJMhjp2tCLlS91or63i9rRqhUpdPK90acRznY2HIlLYcWhS+BaSyl29I5wfjOse1umnRZCCCFEhft5Twwj5h/gq6M6EtNy1I4jyllatoFxP0UwY/M5AMZ1rcv80e1wc9SrnKz6kUInn5eLHRN7KNNN/9+6U2Tk5EGtVvDE94AG9n8Pe2epmlEIUT5mz55NrVq1MJlMt20fOHAgzz33HOfPn2fgwIH4+Pjg6upKjx49+PPPP8v8uN999x316tXD1taWRo0a8dNPPxXeZzab+ec//0lgYCB2dnbUqlWLV199tfD+b7/9lgYNGmBvb4+Pjw9PPvlkmfMIcavivC8GDRpEw4YNcXV1pV27diV+X1y7do2hQ4fi7++Po6MjzZs355dffrltH5PJxOeff079+vWxs7MjMDCQf//734X3x8XFMXToUDw8PHBycqJt27bs3Vt9Jg8yGE3M3BoFwOUsDcPm7ufSjSyVU4nyEp2UwePf7uLPkwnY2mj5akhL/tE/BJ1WxuNUBCl0bjGmUzCBHo5cTcth5tbzysbGj0Dvj5Xr6yfD+b/UCyiEJTCbITfj3hdD5v3vL8ulmK2uTz31FNeuXeOvv26+n5OTk1m3bh3Dhw8nPT2d/v37s2nTJiIiIujZsycDBw4kNjb2nuccPXo03bt3v+f9K1as4LXXXuONN97g2LFjjB8/njFjxhRmWLZsGV999RWzZs3i7NmzrFy5kubNmwNw4MABXn31VT7++GNOnz7NunXr6Nq1a7Geq6giinpfVOR7oYLeFw8//DArV64kIiKCfv36MWDAgBK9L7KzswkNDWXNmjUcO3aMcePGMWLECPbt21e4z+TJk/nss894//33OXHiBIsWLcLHRxmzkJ6eTrdu3bh06RKrVq3i8OHD/P3vf7+rOLNka49e5tKNLDyc9HjYmYm+lsnTM3dzISlD7WiijLafTWTgNzs5ezUdH1c7fh3fgcGta6sdq1qzUTtAVWJno+Mf/Rvz4s8Hmb0tiiHtAqhdwxE6vgKJpyHyZ9j6OdR7SO2oQlRdhkz4tFaRd2kB94p87H/Eg63TA3erUaMGDz/8MIsWLaJnz54ALF26FE9PTx566CG0Wi0tW7YElP8uv/vuu/zxxx+sWrWKiRMnFnlOPz+/+37Ymjp1KqNHj+all14CYNKkSezZs4epU6fy0EMPERsbi6+vL7169UKv1xMYGEhYWBgAsbGxODk58eijj+Li4kJQUBCtW7cu0UsjVHbH+6LC3wu3Ksf3RfPmzUlNTcXV1ZVPPvmEFStWlOh94e/vz5tvvll4+5VXXmH9+vX873//IywsjLS0NL7++mv++9//MmrUKADq1atH586dAVi0aBGJiYns378fDw9lAcX69euX7nWpgsxmc2Frzsj2QdS4foofY12JSsrk6Vm7+fn5cBr5yhgOS2M2m5m74wKfrj2JyQytA92Z9Wwo3q72aker9qRF5w59m/rSvu4t000DaDTQ413Q6CB2l1L0CCEs2vDhw1m2bBk5OUr/94ULF/LMM8+g1WpJT0/nzTffJCQkBA8PD2rXrs3Jkyfv+5/rKVOmsGDBgnvef/LkSTp16nTbtk6dOnHy5ElA+W96VlYWdevWZezYsaxYsYK8PGUSlN69exMUFETdunUZMWIECxcuJDMzs6wvgRB3edD74q233iI8PBwPDw+cnZ1L/L4wGo188sknNG/evPAc69evLzzHyZMnycnJKSy07hQZGUnr1q0Li5zqZvvZJE5eTsVBr2N4WADudrDo+XY09nUhMS2HIbN3cyTuhtoxRQlkG4y8+esR/rVGKXKeCq3N4nHtpcipJNKic4eC6aYfnbGD1UcuM7pjMm2DPZTJCRr2g9NrIOJH6Pep2lGFqJr0jsp/kItgMplITUvD1cUFrbYC/s+idyz2rgMGDMBsNrNmzRratWvH9u3b+eqrrwB488032bhxI1OnTqVu3boYjUaee+45cnNzyz9zvoCAAE6fPs2ff/7Jxo0beemll/jiiy/YunUrLi4uHDx4kC1btrBhwwY++OAD/vnPf7J//36ZwtpS3PG+qPD3wp2PXUzFeV989NFHNG/eHCcnJ5588skSvS+++OILvv76a6ZPn154jtdff73wHA4O918B/kH3W7pZ25Ru88+EBeCePzC9prMdi8e1Z/T8/URevMGwOXuZP6Yd7YKrZ7FXnSSkZjP+pwgiL95Ap9Xwbv8QxnQKlvVxKpG06BShaS03nml3y3TTpvz+zaGjla+HF4EhW51wQlR1Go3STeZeF73j/e8vy6UEfzzs7e15/PHHWbhwIb/88guNGjWiTZs2AOzcuZPRo0czePBgmjdvjre3N9HR0WV6WUJCQti5c+dt23bu3EmTJk0Kbzs4ODBgwAD+85//sGXLFnbv3s3Ro0cBsLGxoVevXnz++eccOXKE6OhoNm/eXKZMohIV9b6oyPdCBb0vRo0axaOPPkrz5s3x9fUt8fti586dDBw4kGeffZaWLVtSt25dzpw5U3h/gwYNcHBwYNOmTUUe36JFCyIjI0lOTi7R41qCY5dS2HnuGjqthuc717ntPndHW35+IZz2dT1Iz8ljxNy9bD+bqFJSURyHYq8zYMYOIi/ewM1Bz49jwniucx0pciqZFDr3MKm3Mt300UspLD90SdlYvye41oas63BylboBhRBlNnz4cNasWcO8efMYPnx44fYGDRqwfPlyIiMjOXz4MGPHjn3gYOfJkyczcuTIe97/1ltv8cMPP/Ddd99x9uxZpk2bxvLlywvHK/zwww/MnTuXY8eOERUVxc8//4yDgwNBQUGsXr2a//znP0RGRhITE8OCBQswmUw0atSofF4IIW5xv/fFihUrOHr0KIcPH2bYsGElfl80aNCAjRs3smvXLk6ePMn48eNJSEgovN/e3p63336bv//97yxYsIDz58+zZ88e5s6dC8DQoUPx9fVl0KBB7Ny5k6ioKJYtW8bu3bvL+VWofLO2KWNzBrTwU8YH38HZzoYfxoTRvZEX2QYTz/9wgPXHr1R2TFEMyyLiGDJ7D1fTcmjo48yqiZ3o3MBT7VhWSQqde/ByseOV/OmmPy+Yblqrgzb5v7AjflAvnBCiXPTo0QMPDw9Onz7NsGHDCrdPmzaNGjVq0LFjRwYOHEiPHj0K/6t9L5cvX77vWIVBgwbx9ddfM3XqVJo2bcqsWbOYP39+4YxU7u7uzJkzh06dOtGiRQv+/PNPfv/9d2rWrIm7uzvLly+nR48ehISEMHPmTH755ReaNm1aLq+DELd60Puib9++DBw4kL59+5b4ffHee+/Rpk0b+vbtS/fu3QuLllu9//77vPHGG3zwwQeEhIQwZMgQrl69CoCtrS0bNmzA29ub/v3707x5cz777DN0Ol35vQAquJicyZojStfGcV3r3XM/e72O2SPa8nAzX3KNJl5aeJDfIi9VVkzxAHlGE5+sPsEbvx4mN89E7yY+LH+pE0E1HzwZiKgYMkbnPkZ3CmbRvlhirmXy3ZbzvNm3EbQZAVs/g5idkHgGvBqqHVMIUUparZb4+LvHEwUHBxd2CzOZTKSmpvLGG2/cNpbizi47P/zww223R48ezejRo2/bNmHCBCZMmFBklkGDBt31ga9A586d2bJly32fixDl5X7viz///LNw1jWtVsvLL7982z4Pel94eHiwcuXKBz7+u+++y7vvvlvk/UFBQSxduvSBz8OSfL89CpMZujb0okkt1/vua2ujZcbQ1ry97CjLDsbx+pJIMnONDA0LrKS0oigpmQYm/nKQ7WeTAHi1ZwNe79kArayPoypp0bkPZbrpEABmb4/iYnLmzUkJAA7+qGI6IYQQQli65Ixclhy4CMD4rnWLdYyNTssXT7ZgRPsgzGaYvPwo32+PqsiY4j7OJqQx8JsdbD+bhINex7fD2zCpd0MpcqoAKXQeoE8THzrUrUlunonP1uVPN10wKUHkQpmUQAghhBCltmB3NNkGE838XelYr2axj9NqNXw8sCnjuynF0b/WnOQ/m85iLuYCsaJ8bDyRwKBvdhJ9LZPaNRxY/lJH+jf3UzuWyCeFzgMUTDet1cCaI5fZH50M9XvdMinB72pHFEIIIYQFyso18uOuaADGd61X4hm5NBoN7/RrzJt9lG700zae4bM/TkmxUwnMZjP/3XyWcT8dICPXSPu6Hqya2JkQv/t3PRSVSwqdYmhSy5Uh7ZS+rx//fgITWpmUQAghhBBlsjTiItczDQR4OPBwM99SnUOj0TCxRwPef1SZqn7WtijeW3ns5tIYotxl5uYxcdEhpm44g9kMIzsE8dPz4Xg42aodTdxBCp1ieqNPQ1zyp5tedjAOWj8LGi3E7ICks2rHE0IIq/fNN98QHByMvb094eHh7Nu37577GgwGPv74Y+rVq4e9vT0tW7Zk3bp1lZhWWLs8o4k52y8AMLZLXWx0ZftI9nznOnz2eHM0Gli4N5Y3fz1MnvH+03+Lkou7nsmT3+1mzdHL6HUapjzenI8HNkNfxu+fqBjyXSkmT2c7XumZP930+tOk2/tAg77KndKqI6ycdJOwbNXh+7dkyRImTZrEhx9+yMGDB2nZsiV9+/YtnJb4Tu+99x6zZs1ixowZnDhxghdffJHBgwdz6NChcstUHV5Xa1OZ37N1x68Qm5xJDUc9T4UGlMs5nwkLZPqQVui0GpYfusTERYfIyTOWy7kF7I26xmP/3cmJy6l4OtuyaGx7me2uipNCpwRGdQwmqKYjiWk5fLfl3C2TEiySSQmEVdLr9QBkZmaqnESURcH3r+D7aYmmTZvG2LFjGTNmDE2aNGHmzJk4Ojoyb968Ivf/6aef+Mc//kH//v2pW7cuEyZMoH///nz55ZdlziLvC8uVm5sLUOHr8pjNZmZtVWZJG9UxGAfb8nu8ga38+W54G2x1WtYdv8K4BRFk5UqxU1Y/74lh+Pd7Sc7IpZm/K79N7Ey7YA+1Y4kHkHV0SsDORse7/UMY91MEc7Zf4JnQzgS4+kPqJTi1Gpo/qXZEISqVTqfD3d298L/mjo6O9x1MazKZyM3NJTs7+7Y1aaqy6pzZbDaTmZnJ1atXcXd3t9hFF3Nzc4mIiGDy5MmF27RaLb169WL37t1FHpOTk4O9vf1t2xwcHNixY8c998/JySm8nZqaCihd4AwGw137u7i4kJCQgMlkKvJ9YTabyc3NJSsrq8QD0NVkibmLm9lkMnH16lXs7e0xm81Ffl/Ly+6oaxy9lIK9XsvQtv5FPlbBttLkeKhhTWY925qXFh1i65lERs7by6zhrXGxr9iPfWXJrJYHZc7NM/HJ2lMs3h8HwCPNfZkyqCkOtjpVn2d1fK1Lc64HkUKnhHo38aFjvZrsOn+Nz9af5Zs2I2HLFKX7mhQ6wgr5+ioDaO/VRehWZrOZrKwsHBwcLOpDUnXP7O7uXvh9tERJSUkYjUZ8fHxu2+7j48OpU6eKPKZv375MmzaNrl27Uq9ePTZt2sTy5csxGov+z/eUKVP46KOP7tq+YcMGHB0dizzGxcWFjIwMiymQhfLhKTExkSNHjlTo43x3QgtoaeeRx56tf953340bN5b6ccY1hFmndOyPvs6g6Zt4McSIUyU03JYls1qKypxmgPmndZxP06DBzCOBJno5xfHXn3EqJCxadXmtS6q4LeZS6JRQwXTTj/xnO2uOXmZsy0dppfk/iN4OSefAs77aEYWoVBqNBj8/P7y9vR/4HxaDwcC2bdvo2rWrxXSTqu6Z9Xq9xbbklMXXX3/N2LFjady4MRqNhnr16jFmzJh7dnWbPHkykyZNKrydmppKQEAAffr0wdX13tPJGo1G8vLy7hr7kZeXx65du+jYsSM2Npbzp9gScxc3s0ajQa/XV3hhevJyGqd270argX8O60qgR9GFssFgYOPGjfTu3btMv3u6X0rluQURxGYY+PGiOz+MDsXT2a7U57uf8spcme6V+Xh8Ki8tiiQ+LRtnOxumPdWchxp5qZj0dtXptS6Nglb1B7GM31JVTIifK8+EBbJobyzv/XWd3+v3RnN2PUTMh77/VjueEKrQ6XQP/MCs0+nIy8vD3t7eYn4xS+aqz9PTE51OR0JCwm3bExIS7tlS5eXlxcqVK8nOzubatWvUqlWLd955h7p1i16Z3s7ODju7uz8c6vX6+77G97rPYDCQl5eHs7OzRX2PLDF3Vcs8f3csAP2b+1HPx+2B+z/oZ+xBWgfXZMn4Dgz/fi+nE9IZPvcAP78QTi13h1Kf80HKmlkNt2b+/XA8by09TLbBRF1PJ2aPbEt9b2eVExbN0l/rspyjOKQ9vZQm9Vammz52KZUd7gOUjZGLIC/n/gcKIYQoV7a2toSGhrJp06bCbSaTiU2bNtGhQ4f7Hmtvb4+/vz95eXksW7aMgQMHVnRcYcXirmey6nA8oCwQWlka+rjw6/gO+Ls7EJWUwVMzdxOdlFFpj28pTCYzX6w/xSu/HCLbYKJbQy9WvNypyhY54sGk0CklT2c7Xu3ZAIC3DnljcqkFWclw8neVkwkhhPWZNGkSc+bM4ccff+TkyZNMmDCBjIwMxowZA8DIkSNvm6xg7969LF++nKioKLZv306/fv0wmUz8/e9/V+spCCswb0c0RpOZTvVr0rz2g1tzylOwpxO/vtiBOp5OXLqRxdOzdnM2Ia1SM1Rladl5jF1wgG/+Og/A+K51mTe6HW4OltVaIm4nhU4ZjOoYTHBNR66k57Hbtb+yUdbUEUKISjdkyBCmTp3KBx98QKtWrYiMjGTdunWFExTExsZy+fLlwv2zs7N57733aNKkCYMHD8bf358dO3bg7u6u0jMQ1d2NzFwW71e6rVVma86tark7sGR8exr7unA1LYenZ+3m2KUUVbJUJVez4KnZe9l06iq2Nlq+GtKSyf1D0GktYwIacW8yRqcMbG20vPtIE8YuOMA/YlqxRa9FI5MSCCGEKiZOnMjEiROLvG/Lli233e7WrRsnTpyohFRCKH7eE0NmrpEQP1e6NPBULYe3iz2Lx7Vn1Lx9HI5LYejsPcwf0462VrgmTHpOHksPXGTaUR1Zxgx8Xe2ZNSKUlgHuakcT5URadMqoV4g3nerXJCbPg2MOYcrGgz+omkkIIYQQVUe2wcgPu6IBpUuU2lPVuzva8vML4YTV8SAtJ48Rc/ex42ySqpkq0/H4FP6x4ijh//6Tf/5+kiyjhtYBbqya2EmKnGpGCp0yKphuWquB6Tc6KRtlUgIhhBBC5Ft+8BJJ6bn4uzvwSAs/teMA4GKv58cxYXRt6EWWwchzP+xn44mEBx9oobINRpZGxDH425088p8dLNobS0aukbqejgwONvLTc+3wdrV/8ImERZFCpxw09nVlaFggW0ytSNLUhMxrcGq12rGEEEIIoTKjycyc7VEAPN+5Dnpd1fno5WCrY87IUPo29SHXaOLFnyMKZ4WrLs4npvPx7ycI/3QTb/56mEOxN9DrNDzawo9fxrZn3aud6O5nxs6m6nxfRPmRMTrlZFLvhqw6HM9CQzdes1kOB+ZDsyfUjiWEEEIIFW08cYULSRm4OegZ0i5A7Th3sbPR8c2wNry19AgrDl3itcWHyMzJ45mwQLWjlVpunokNJ66wcE8su6OuFW73d3dgWHggT7cNwMtFWRfrQQtdC8smhU45qelsx2s9GzBvTXcm2qxEJ5MSCCGEEFbNbDbz3ValNWdkhyCc7Krmxy4bnZYvn2qJo62OhXtjeWf5UTJyjTzfuY7a0UrkYnImi/fHsmR/HEnpyhACrQZ6NPZmePsgujbwkpnUrEzVfMdZqJEdglm4N5YtKS3pqTsEB3+EPp+oHUsIIYQQKth3IZnDF29ga6NlVMdgtePcl1ar4V+DmuFkZ8PsbVF8svoEWbl5vPxQfdUnT7gfo8nMltNXWbg3lr9OX8VsVrZ7u9jxTLsAhoQF4u/uoG5IoRopdMqRrY2Wd/uH8MvPPeipO4Tx4M/oerwHNnZqRxNCCCFEJZu1TWnNeTK0Np7OVf+zgEajYfLDjXGyteGrP88wdcMZ0nOMvN2vUZUrdq6mZrNk/0UW77/IpRtZhds71/dkeHggvZr4VKnxUEIdUuiUs54h3iyo04srcfPwzU5WJiWQsTpCCCGEVTmTkMbmU1fRaGBsl7pqxyk2jUbDa70a4GSn419rTjJz63kycvL46LGmaFXu9mU2m9l1/hoL98aw4XgCeSal+cbdUc9TobUZFh5EHU8nVTOKqkUKnXKm0Wj4x4Bm/O+/3XnVZgUpO+bgJoWOEEIIYVVm57fm9Gvqa5Efvl/oUhdHWxveXXmUn/IXO/2/J5pjo0IryfWMXJYdjGPR3liikjIKt7cNqsHw9oE83MwPe72u0nOJqk8KnQrQ2NeV31sMx3R8JW5XdmNMPIfOSyYlEEIIIazB5ZQsfou8BMC4rpbTmnOnYeGBONrqeOPXwyw7GEeWIY/pQ1pjWwlTMZvNZg7G3mDhnhhWH71Mbp4JAGc7Gwa39mdYeCAhfq4VnkNYNil0Kshz/buy40QrunKIM3/8l5CR09WOJIQQQohKMH9nNAajmfA6HrQOrKF2nDIZ1Nofe72OV385xNqjV8jMPcDMZ0MrrAUlLdvAysh4Fu6J4dSVtMLtTWu58mz7IB5rWavKzl4nqp5SleTffPMNwcHB2NvbEx4ezr59++67/40bN3j55Zfx8/PDzs6Ohg0bsnbt2lIFthQ1ne3IbjECAJ+oZaRlZDzgCCGEEEJYupQsA4v2xgLwYrd6KqcpH/2a+fL9qLbY67VsOZ3I6Pn7SM/JK9fHOB6fwj9WHKX9p5t4f+UxTl1Jw16v5anQ2qx8uROrX+nM0LBAKXJEiZT4p2XJkiVMmjSJmTNnEh4ezvTp0+nbty+nT5/G29v7rv1zc3Pp3bs33t7eLF26FH9/f2JiYnB3dy+P/FVa90dHkHT0X3iak1m5Yj6Dnp2odiQhhBBCVKBFe2NJz8mjkY8L3Rt5qR2n3HRt6MWC58J57of97IlK5tnv9/LjmDDcHPWlPme2wcjqI5f5eU8MkRdvFG6v5+XE8PAgnmhTu0znF6LEhc60adMYO3YsY8aMAWDmzJmsWbOGefPm8c4779y1/7x580hOTmbXrl3o9coPa3BwcNlSWwhbW1vSQobieeIbvM/8Qsy1MQTVtLwBiUIIIYR4sJw8I/N2XgBgbNe6VW5K5rIKq+PBwhfCGTV/H5EXb/DMnD389HxYiafOPnc1nUV7Y1kacZHUbKVlSK/T0K+ZH8PDAwmv41HtXjuhjhIVOrm5uURERDB58uTCbVqtll69erF79+4ij1m1ahUdOnTg5Zdf5rfffsPLy4thw4bx9ttvo9MV3b8zJyeHnJycwtupqakAGAwGDAZDSSIXHnfr18rk/9DzmE58S0ftMd5duZF/jnykWMepmbksLDG3ZK48lpjb2jNb0vMWQm0rD10iMS0HX1d7HmtZS+04FaJlgDtLxnVg+Pd7OXk5ladn7WbhC+H4ud1/Uc7cPBMbTlxh4Z5YdkddK9xeu4YDw8IDeSo0AC+Xqr/WUIUymyEnDTISIT0h/5IIZiM0fhTcA9ROeDezGUxGMBnAaABTXv7Xu29rcrLxSD+DJsYVNGawc4PaoRUar0SFTlJSEkajER8fn9u2+/j4cOrUqSKPiYqKYvPmzQwfPpy1a9dy7tw5XnrpJQwGAx9++GGRx0yZMoWPPvroru0bNmzA0dGxJJFvs3HjxlIfWxatnZoTmHGEgAtL+foXLQ3czMU+Vq3MZWWJuSVz5bHE3NaaOTMzsxySCFH9mUzmwimln+9cp1JmJlNLI18Xfn2xA8Pn7CEqMYOnZu5m0Qvt8XO9u5vZxeRMftkXy/8OXCQpPRcArQZ6NPbh2faBdG3gpfr6PBUuN1MpWu4sYIralpdV9DnW/wMa9IW2z0H9npWbHyA1Ho4sgaNL4cbFWwqZ4v8zzAboAnA2f0NwFxi9ugLC3v6YFcpkMuHt7c3s2bPR6XSEhoZy6dIlvvjii3sWOpMnT2bSpEmFt1NTUwkICKBPnz64upZ8KkGDwcDGjRvp3bt3Yfe5yqSpBywdyZO6rYy+NoaJQ7qge8CbWu3MpWWJuSVz5bHE3NaeuaBFXQhxf5tOXeV8YgYu9jY8E1YF//Nezup4OvHrhI4Mn7OH6GuZPDVrFz+MUv47bzSZ2XoigYV7Y9hyJhFz/v93vV3seCYskGfaBVDL/f4tQBbLaICYnXBqDURtUQqE3PSSncPWGZy9wdkHnLwgMxlidsCZP5SLWyDa1iOwM/g8+FxlYchSnsfhX+D8ZjCbinmgBnR60OpBZ5P/VY9Za0NGdi5OLm5odLZQI6hC40MJCx1PT090Oh0JCQm3bU9ISMDX17fIY/z8/NDr9bd1UwsJCeHKlSvk5uZia2t71zF2dnbY2d3dfKnX68v0R7usx5daSH9MTj54ZiQQmLiFFYcbMDQssFiHqpa5jCwxt2SuPJaY21ozW9pzFkIts7aeB+DZ9kG42FvH+8bf3YH/je/As3P3ciYhnWFz9xNaQ8tn07ZzOSW7cL8uDTwZHh5IzxAf9CosOFrhcjPg3CalKDizDrJv3L2Pjf0txYv3zevOXvlf84saZ2+wLWI8d9JZiPgBDv0MKbHotvybPujAuAnaPQ91ukJ5jGsymyHuAEQuhGPLISfl5n2BHaHVUAjscEshowetzR23ix6akmcwsGntWvr3719pf1tKVOjY2toSGhrKpk2bGDRoEKC02GzatImJE4ueUaxTp04sWrQIk8mEVqv8cJ85cwY/P78ii5xqSadHGzoStn3BUN1mXl/flUda+OFqJb8IhRBCiOrsQHQyB2KuY6vTMqZjsNpxKpW3qz1LxnVg1Px9HIlL4c9MLZBNDUc9T7cNYGhYIMGe1XAipoxrSuvKqTVKa0fezcIOR09o9DA06g+eDZXixc6lbIWIZwPo+2/o8R6c+A3T/rlo4/bByd+US836EDoaWg0HR4+Snz/lEhxZDJGL4Nq5m9vdAqDlUGj5DNS0vOnSS9x1bdKkSYwaNYq2bdsSFhbG9OnTycjIKJyFbeTIkfj7+zNlyhQAJkyYwH//+19ee+01XnnlFc6ePcunn37Kq6++Wr7PpKprPQLztql00R3DOTOWb/46x+SHQ9ROJYQQQogympU/NufxNv54u9qrnKby1XCyZeEL4bzxv0guxF1hfJ+WPNrSv8IWFVXN9RilsDm1BmJ33d6Vyz0IQgZA40cgIPyerRplpneAls9gbPIEW5fNpKtTFLqjvyrFyYb3YNMn0HSQMpYnIPz+xVVupvJcIhcq3ezI72Ood4QmA6HVMAjqDFrLbYUrcaEzZMgQEhMT+eCDD7hy5QqtWrVi3bp1hRMUxMbGFrbcAAQEBLB+/Xr+9re/0aJFC/z9/Xnttdd4++23y+9ZWIIaQWjq94Rzf/KM7i++2lGLYWGBMt20EEIIYcHOXU1n4wmlS/8LXeqqnEY9LvZ6vhnairVr19K/pR/66lDkmM2QcDy/uPkdrhy9/X7fFspsaCGPgneT8uk6VgKpDoGY+r2Irs8ncGwp7J8LV44okwYcWaJkavsctHga7N1uPqeLe5WWm+MrIOeWcZhBnZTipslApQWqGijVZAQTJ068Z1e1LVu23LWtQ4cO7NmzpzQPVb2EjoZzfzLMdjvTMp/i07UnmTWirdqphBBCCFFKc/Jbc3o38aG+t7PKaUSZGQ1wcR+cXgunVsP16Jv3abRKMdD4EeXiXrzx1hXOzln5jNlmFMQfhAPz4OgyuHoC1r4JGz+A5k8q3dAOL4bk8zePdQ+ElsOUrmkedVR7ChWlwmddE7do2A+cfXFLv0Iv3SH+OG7DrvNJdKznqXYyIYQQQpTQ1dRsVhy6BMCL3aysNcdkVIqB2D3K+JBarcGjgdqpSs5sxjn7Mtr930P0VojeAblpN++3sYd6PZXCpmE/cKqpXtYH0WjAP1S59Pm30qpzYB4knoKDC27up3dSure1HKoUbhbcNe1BpNCpTDq90ny46z+85HWYP6604+PfT7Dm1QdPNy2EEEKIqmX+rmhyjSbaBtUgNKgUA8AtUXYKHPwJ9s2CG7G33WWjs6OrnT9a7RZlIcharcGzkTLFcFWScQ0ubIHzf2FzfjM9Uy/ByVvud/SE+r2ULmn1ehQ9C1pV5+AO4eMhbBzE7oaIHyHrulLghDymtAJZgSr2k2cFmg6GXf+hWcYefOxHc+pKGkv2X2RYeBVp/hRCCCHEA6VlG/h5TwwA47tZ3mxUJXbtPOydqYztKFgXxsFDGYB/IxbiD6HJvkGNzCiIiIKIeco+ekdlLEut1jcvNetXbitCXo4yLuX8Zjj/F1w+TMHAew1g1OjRBHVAW78n1HsIfJpXn1YOjQaCOioXKySFTmWr1Rrcg9DciGFK8ys8t782X244zaMtZbppIYQQwlIs3neRtOw86nk50bOxt9pxKobZrMzGtXcmnFlP4axcXiHQfoLSS0XvULivIfEskWvn08ZXg+7KEYiPVLqBXdyjXArYukCtVvmX/OKnRp3yG8xvNsPVkxD1l1LcxOwCQ+bt+3g3hXoPkRfUlXUnU+j76GC0sm5YtSOFTmXTaJRWnZ3T6Z63k7pezxGVmME3m88xub9MNy2EEEJUdbl5JubuuADA+K710Fa37ueGLGV8x56ZkHhLn66G/ZQCp063u4sSjQZq1CG+Rnta9eyPTq8Hk0mZ9jj+0M3L5cNK8RO9XbkU0NmCjQPY2CrjYmzsQGenfC24bXPLbZ3tHdvztyWeUlpt0q/cns/JW2mtqdcD6nYHF2Whe7PBgPH02op5HYXqpNBRQ36hoz27gX8O/IiRC08wb+eF6ruolhBCCFGNrDocz5XUbLxd7BjYupbaccpPajzs/x4OzIesZGWb3glaP6uM9yjpgpFaLXg1VC4thyjbjHmQdPr24ufKUTDmKpeccnouNvZKd616PaDuQ+DTtNKnfxbqk0JHDX4tlSba6xfowkG6Ngxg25lEPl17ktkjZbppIYQQoqoym83M3qZMzzumUx3sbKrBejFxEbDnWzixEkx5yjb3QAgbrxQ5Du7l91g6G6Xo8GmqnBsgLxfSE5RCJy87/1JwPUf5arzjdlH75OWAi49S2AR2AL31Ld4qbieFjhoKuq/tmIbmxAref+Q7+p1LYsOJBHadS6JjfZluWgghhKiKtpxO5ExCOs52NpY9kZDRACdXKd3T4vbd3B7USeme1qg/aCupiLOxBfeAynksYVWqyZQSFqjpYOXr2Y00cIdn839Zfrz6BEaTWb1cQgghhLinmVuV1pxh4YG4OVjg4HWTUVlT5etWsPQ5pcjR2SqLRo7fBmPWKjOpVVaRI0QFkhYdtfg2B496yuq0Z9bzeq/HWBkZz6kraSzeH8vTbapRn18hhBCiGjgUe529F5LR6zSM6RSsdpySi9oK69+FhKPKbScvaPcCtH0OnKvpzHHCqkmLjloKuq8BHF9BDSdbXu+lrCj85YYzpGUbVAwnhBBCiDvN3hYFwMBW/vi5OaicpgSSzsKiZ2DBY0qRY+8GfT+F149B93ekyBHVlhQ6arql+xrZqTzbPoh6Xk4kZ+TyzZYodbMJIYQQotCFpAzWHVemLB7Xta7KaYopMxn+eBu+bQ9n/gCNTplg4NVI6PCyDNYX1Z4UOmryaQo1G4AxB86sQ6/T8t6jTQBYsCeWq1kq5xNCCCEEAHO2R2E2Q4/G3jT0cVE7zv3l5cLub+E/rZXFPk150PBheGkP9P8cHD3UTihEpZBCR013dF8DeKiRN90aemEwmlkVI98eIYQQQm2JaTksjYgDYHxVbs0xm+Hkavg2HNZPhuwb4NMMRqyEYYuV9WyEsCLySVptBYXOuT8hOwWA9x8NQafVcPS6luPxqSqGE0IIIcSC3dHk5ploFeBOWJ0q2hpy+TD8OACWDIfkKHDyhsdmKDOp1XtI7XRCqEIKHbV5h4BnI2UhrNN/AFDf24W+TZSBgcsOxauZTgghhLBqGTl5LNgdA8CL3eqi0WhUTnSH1Muw8iWY1Q2it4ONPXR5E149CG1GyjTRwqpJoaO2IrqvATzRxh+A3w9fJifPqEYyIYQQwuot2X+RlCwDdTyd6N3EV+04N+Vmwpb/gxltIHIhYIbmT8HEA9DzfbCr4uOIhKgEUuhUBU0HKV/PbYKsGwB0qlcTN72ZG1kG/jp1VbVoQgghhLUyGE3M3XEBgLFd6qLTVoHWHJMJDi+GGaGw5VMwZEJAOLywCZ74HtwD1E4oRJUhC4ZWBd4h4BUCiSfh9FpoNQydVkNbLzOb4jUsjbhEv2Z+aqcUQgghrMqaI5e5dCMLT2dbHs/vaVGhjHmQeQ0yrqJJuULt5F1o98ZAdjKkJ0JGorLQ+LVzyv7ugdDrI6VnSFXrUidEFSCFTlXRdDBsOal0X2s1DIAwLxOb4rX8dfoqiWk5eLnYqRxSCCGEsA5ms5mZW88DMLpjMPb6Mo51uR4DV44oxUpGUv7XxJsFTEYiZCUX7m4DhALEFHEuWxfo+gaET5C1cIS4Dyl0qoqmg5Qm6PObIes62Djj6wgtartyJC6V3yIv8UKXKjylpRBCCFGNbDubxKkraTja6ni2fVDpT5SRBFumwIH5YC7GmFuNFhxrYnb0JClLQ82gxmidfcDJE5y9wclL6aoma+EI8UBS6FQVXo3AuylcPQ6n1kCzIQA83tqfI3GpLI2I4/nOdarebC9CCCFENTR7m9Ka80y7QNwdbUt+AkMW7PkOtk+D3DRlm28LcKutFC1OXndfnL3BoQZodeQZDOxau5b+/fuj1evL8ZkJYT2k0KlKmg5WCp3jKwoLnUeb+/Lp2tOcupLG8fhUmvm7qRxSCCGEqN6OxqWw89w1dFoNz3epU7KDTSY4thQ2fQwpF5Vtfi2hz7+gTtfyDyuEuCeZda0qKZhmOmoLZCr9dN0c9PRu6gNQuCqzEEIIISrOrPzWnMda1sLf3aH4B0bvhO97wPKxSpHj6g+DZ8HYLVLkCKECKXSqEs/64NscTHloTq8p3PxkaG0Afou8RG6eSa10QgghRLUXey2TtUcvAzCuazHHxiadg8XD4Yf+EH8IbJ2hx/vwSgS0fAa08nFLCDXIO6+qyW/V0Z78rXBTl/qeeLvYcT3TwGZZU0cIIYSoMN/viMJkhm4NvQjxc73/zhnXYO1b8G04nFqtTCTQ9jl49RB0fRP0JWgNEkKUOyl0qpomgwDQRG/H1pAKgI1Oy+D8+ful+5oQQghRMa6l5/C/A8q4mvH3a80xZMOO6fCfVrBvNpjyoEFfmLAbHv1KmVRACKE6KXSqmpr1wK8lGrMRv5SIws1PtlG6rxWsqSOEEEKI8rVgdwzZBhPN/d3oUK/m3TuYzXB0Kfy3Hfz5IeSkgk9zGPkbDP8feDeu/NBCiHuSQqcqyu++5n99b+GmBj4utAxwx2gy81vkJbWSCSGEENVSVq6RBbujARjfre7dyznE7Ibve8Ky5yElFlxqwaDvYPxWqNu90vMKIR5MCp2qKL/7mmf6SWWl5HwFkxIsjYjDbDarkUwIIYSoln6NuMj1TAOBHo70a+qrbMy4BlFbYcmzML8fXIoAvRM89J4y0UCrYaDVqRtcCHFPso5OVeRRB5NfK7SXI9GeWg3txwHwWItafPL7CVlTRwghhChHeTlZ/LV1E49rz/C8dxY2i2ZAwnFIv3JzJ40WWo+Ah94FFx/1wgohik0KnSrKHDIQLkeiOflbYaHj5qisqbPmyGWWRsRJoSOEEEKUhNkMN2Lh6glIOAYJJyDhONpr55hvNoItEH3HMe5BULstdHkTfJqoEFoIUVpS6FRRppCB6DZ/hCZ2F6QlFP736MnQ2qw5cpnfIi/xj/4h2NpI70MhhBDiLiYjxO1He+kwLWL/QPfjfyHxlDKBwB20wA2zE+lujajdKBR8mioX7xCwc6n87EKIciGFTlXlHsh1x7rUyIyCk6sgbCxwc02dq2k5bD51lX7NfFUOKoQQQlQxNy7Cshfg4h50QJ1b79PqwasReDcBnyYcNwbw/B+ZpOi92DW+JzjZqhRaCFHepNCpwi65hyuFzvGVhYVOwZo6s7ZGsTQiTgodIYQQ4lan1sLKCZB9A2ydMQV24FyaHXU7DMDGrwV4NgCdvnD3z+bu5QpJjGobQA0pcoSoVqTfUxUWX6OdciVmJ6TdHBApa+oIIYQQd8jLgT/egcVDlSKnVmt4cQfGIb9wstbTmJs+oYyxuaXIORGfyvazSWg18EKX+ywQKoSwSFLoVGFZtp6Y/NsCZjixqnC7rKkjhBBC3OLaeZjbG/Z+p9zuMBGe2wAede572Oxt5wF4pEUtAjwcKzqlEKKSSaFTxZlDBipXjq+4bbusqSOEEEIAR5fCrG5w+TA41IChS6Dvv8Hm/t3Q4q5n8vuRywCM7yqtOUJUR1LoVHGmkMeUK7G7ITW+cPtjLWphq9MWrqkjhBBCWJXcTFj1Cix7HnLTILAjvLgTGvUr1uFzd1zAaDLTub6nLNcgRDUlhU5V5+oPAeHc2X2tYE0dUFp1hBBCCKtx9STM6QEHFwAa6PoWjPod3PyLdfj1jFwW77sIwPhu0pojRHUlhY4laDpY+XqP7mu/RV4iN89U2amEEEKIymU2K8XN7Icg8SQ4+8DIldDjPdAVfyLZn/fEkGUw0sTPlc71PSsurxBCVVLoWIIm+eN0Lu6BlJuTDxSsqXM908DmU1dVCieEEEJUguxUZW2cVa9AXhbU6wEv7oC63Ut2GoORH3dHA0prjkajKf+sQogqQQodS+BaCwI7KNdP/Fa4uWBNHZDua0IIIaqx+EMwqyscWwoaHfT8EIYvA2fvEp9q2cE4ktJz8Xd3oH9zvwoIK4SoKqTQsRT36r6Wv6bOltNXSUqXNXWEEEJUI2Yz7JkJ3/eG6xfALQDG/AFdJoG25B9hjCYzc7ZFAfBClzrodfIxSIjqTN7hliLkMUADcfvgxsXCzQVr6uSZzPwWGX/v44UQQghLkpkMi4fDurfBZIBGj8D4bRAYXupTbjh+hehrmbg76hnSLqAcwwohqiIpdCyFqx8EdVSu39J9DW5fU0cIIYSweLF7YWYXOL0GdLbw8OfwzEJw9Cj1Kc1mMzO3KguEjmwfhKNt8ScvEEJYJil0LMk9uq8VrKlz8nIqx+NTVAgmhBDq++abbwgODsbe3p7w8HD27dt33/2nT59Oo0aNcHBwICAggL/97W9kZ2dXUlpxT1FbYf7DkBoHHnXh+Y0QPh7KOGnAvujrHI5Lwc5Gy8iOweWTVQhRpUmhY0kKuq9dOgDXYwo3y5o6Qghrt2TJEiZNmsSHH37IwYMHadmyJX379uXq1aJnpFy0aBHvvPMOH374ISdPnmTu3LksWbKEf/zjH5WcXNzGbIaNH4DZeLOrWq1W5XLqOTuiAXiqbW08ne3K5ZxCiKpNCh1L4uIDwZ2V6/fovvZbZLysqSOEsDrTpk1j7NixjBkzhiZNmjBz5kwcHR2ZN29ekfvv2rWLTp06MWzYMIKDg+nTpw9Dhw59YCuQqGCn/4DLkaB3gsf+A3Yu5XLa+EzYeiYJjQZe6CwLhAphLaSDqqVpOgiityvd1zq9Wri5YE2dq2k5/HX6Kn2b+qqXUQghKlFubi4RERFMnjy5cJtWq6VXr17s3r27yGM6duzIzz//zL59+wgLCyMqKoq1a9cyYsSIIvfPyckhJ+fmzJapqakAGAwGDAZDiTMXHFOaY9VUobnNZmz++hQNYGz3AiZbNyiHxzEYDPwVr/xft28TH/zdbC3idbfEnxHJXHksMXd5Zi7uOaTQsTQhj8HatyD+IFyPhhrBwM01dWZtjWJpRJwUOkIIq5GUlITRaMTHx+e27T4+Ppw6darIY4YNG0ZSUhKdO3fGbDaTl5fHiy++eM+ua1OmTOGjjz66a/uGDRtwdHQsdfaNGzeW+lg1VURuvxsHCEs4Sp7Wng1pDTGsXVsu572RAweSdAA00V5i7dpLDziiarHEnxHJXHksMXd5ZM7MzCzWfqUqdL755hu++OILrly5QsuWLZkxYwZhYWFF7vvDDz8wZsyY27bZ2dnJgM/ScvZWuq9d2AbHV0Ln1wvverJNbWZtjeKvU8qaOtIHWQghirZlyxY+/fRTvv32W8LDwzl37hyvvfYan3zyCe+///5d+0+ePJlJkyYV3k5NTSUgIIA+ffrg6upa4sc3GAxs3LiR3r17o9fry/RcKlOF5TabsPn+MwA0HV6md/ch5XbqT1afwGSOIyzInQlPF/1ZpSqyxJ8RyVx5LDF3eWYuaFV/kBIXOgUDPmfOnEl4eDjTp0+nb9++nD59Gm/volcodnV15fTp04W3NWWcOcXqNR2cX+isuK3QaeDjQsvabhyOS+G3yHie71xHvYxCCFFJPD090el0JCQk3LY9ISEBX9+iW7fff/99RowYwQsvvABA8+bNycjIYNy4cbz77rto71iM0s7ODju7u/95pNfry/QHu6zHq6Xccx9fAVdPgJ0rus6voCunc28+lcBP+5RJesZ3qyuvdSWRzJXHEnOXR+biHl/iyQhKOuATlMLG19e38HJn9wJRQiGPgUarDNiMj7ztLllTRwhhbWxtbQkNDWXTpk2F20wmE5s2baJDhw5FHpOZmXlXMaPTKd2bzGZzxYUVdzMZYYvSmkP7l8ChRrmc9tzVNF77JRKzGTp6m+hSv2a5nFcIYTlK1KJTmgGfAOnp6QQFBWEymWjTpg2ffvopTZs2vef+MujzAZlt3dA1GYz2+DJM6yZjfPa3wvUF+jXx5uPVJzh5OZXDsddo4lfyLhVlUe1e6yrKEjODZea29syW8rwnTZrEqFGjaNu2LWFhYUyfPp2MjIzCrtMjR47E39+fKVOmADBgwACmTZtG69atC7uuvf/++wwYMKCw4BGV5PgKSDwF9m7QfkK5nDIl08ALPx4gLSePtkHuPOGbJL1JhLBCJSp0SjPgs1GjRsybN48WLVqQkpLC1KlT6dixI8ePH6d27dpFHiODPm+6V2YHOtFTswpd7C4O/PIJl93bFt7X1F1L5DUt05bv4vE66kw1XZ1e66rMEjODZea21szFHfCptiFDhpCYmMgHH3zAlStXaNWqFevWrSv8exUbG3tbC857772HRqPhvffe49KlS3h5eTFgwAD+/e9/q/UUrNOtrTkdXgEH9zKfMs9oYuIvB4m+lom/uwP/faYle7dtevCBQohqp8JnXevQocNtXQc6duxISEgIs2bN4pNPPinyGBn0WczM7nGwcxrtrq8i7+m3wUbpP+5YP5GxPx3iSKod3/bphq1N5S2XVG1f6yrGEjODZea29szFHfBZFUycOJGJEycWed+WLVtuu21jY8OHH37Ihx9+WAnJxD0dXQrXzird1cLHl8spp/xxiu1nk3DQ65g9MpSaMjGPEFarRIVOaQZ83kmv19O6dWvOnTt3z31k0OdN983c9Q04vBDNjWj0B+cVrqvzUGNfvFzsSEzLYUfUdVWmmq52r3UVZYmZwTJzW2tmS3vOwoIY82BrfmtOx1fAvuxdrX89cJG5Oy4AMPWpljSt5WYx3S+FEOWvRP/qL82AzzsZjUaOHj2Kn59fyZKKu9k5Q88PlOvbvoCMJEBZU+fx1v6ATEoghBCiijr6P0iOAseaEDauzKeLiLnOuyuOAfBqj/o80kI+Zwhh7Urcp2nSpEnMmTOHH3/8kZMnTzJhwoS7BnzeOlnBxx9/zIYNG4iKiuLgwYM8++yzxMTEFE7pKcqo5TDwbQE5qfDXp4Wbn8iffa1gTR0hhBCiyjAaYOv/Kdc7vgp2LmU63eWULF78OYJco4k+TXx4vVfDcggphLB0JS50hgwZwtSpU/nggw9o1aoVkZGRdw34vHz5cuH+169fZ+zYsYSEhNC/f39SU1PZtWsXTZo0Kb9nYc20WuinzCJExHxIOAFAw/w1dfJMZn6LjFcxoBBCCHGHw7/A9Whw9ISwsWU6VbbByLgFESSm5dDIx4WvhrRCq5UZ1oQQpZyMoCQDPr/66iu++uqr0jyMKK7gztD4UTi1Gja8C88uB42GJ0NrczguhaURcbJ4qBBCiKohL1fpbg3Q+W9g61TqU5nNZt5edoSjl1Ko4ajn+1FtcbKr8HmWhBAWovKm4xIVq/fHoNXD+c1wVplSdkDLWtjqtJy8nMrx+BSVAwohhBBA5EK4EQtO3tD2uTKdaubWKH6LjEen1fDN8DYEeJR+CQohRPUjhU51UbMetH9Rub7hXTAacHe0pXcTpUuhTEoghBBCdXk5sG2qcr3LJLAtfWGy+VQCn69X1vD754AmdKznWR4JhRDViBQ61UnXt5TZa5LOwIH5ADyZPynBb5Hx5Oaps3ioEEIIAcDBBZAaBy5+EDq61Kc5dzWNV3+JxGyGoWGBPNs+qPwyCiGqDSl0qhN7N3joH8r1LZ9C1nW6NPDEy8WO5Ixc/jp9Vd18QgghrJchG7ZPU653eQP0DqU6TUqmgRd+PEB6Th5hwR589FhTNBqZfEAIcTcpdKqbNqPBKwSyrsPWz2VNHSGEEFXDwR8hLR5c/aHNyFKdIs9oYuIvB4m+lom/uwPfPtsGWxv5KCOEKJr8dqhudDbQ99/K9X2zIemcrKkjhBBCXYYs2P6lcr3LG2BjV6rTTPnjFNvPJuGg1zF7ZCiezqU7jxDCOkihUx3V7wkN+oApDza+L2vqCCGEUNeBeZCeAG4B0HpEqU7x64GLzN1xAYAvn25J01pu5ZlQCFENSaFTXfX5F2h0cHotRG0pnJRgmXRfE0IIUZlyM2BH/np6Xd8EG9sSnyIi5jrvrjgGwKs9G9C/uV95JhRCVFNS6FRXXo2g3fPK9fXvMqC5D7Y6LSdkTR0hhBCVaf9cyEgE9yBoNbzEh19OyWL8TxHkGk30berD6z0bVEBIIUR1JIVOddZ9sjITW8Ix3E8vKVxTZ1nEJZWDCSGEsAo56bBzunK9299Bpy/R4dkGI+MWRJCUnkNjXxemPd0KrVZmWBNCFI8UOtWZowd0e0e5vvlfDGmh9GdeGXlJ1tQRQghR8fbPgcxrUKMOtHimRIeazWb+vvQIRy+lUMNRz5yRbXGys6mgoEKI6kgKnequ3QvgUQ8yEul8eUHhmjpbZE0dIYQQFSk7FXZ+rVzv9rYyK2gJzNwaxarD8dhoNXw7PJQAD8cKCCmEqM6k0KnubGyViQkA7d7vGNNEafKXNXWEEEJUqH2zlDXdataH5k+V6NBNJxP4fP0pAD4c0IQO9WpWREIhRDUnhY41aPQw1OkKxhxGpM8DYPOpq1yTNXWEEEJUhOwU2DVDuV7C1pxzV9N4bXEkZjMMCw/k2fZBFRRSCFHdSaFjDTQa6DsFNFpczq/mGZ84WVNHCCFExdkzUyl2PBtCsyeKfVhKpoEXfjxAek4eYcEe/HNAUzQamXxACFE6UuhYC99mhYu0vWn+EQ0m6b4mhBCi/GVdh93fKNe7vwNaXbEOyzOamPjLQaKvZeLv7sB3z7bB1kY+pgghSk9+g1iTHu+BrQueqcd50maXrKkjhBCi/O3+FnJSwCsEmgwu9mGfrj3F9rNJOOh1zBnZlprOdhUYUghhDaTQsSbO3tBlEgDv2v0PB7JlTR0hhBDlJzMZ9nynXO/+DmiL9zHjfwcuMm/nBQCmPd2SJrVcKyqhEMKKSKFjbdq/BO6BuBuTGG+zWtbUEUIIUX52/xdy08CnGYQ8VqxDImKu896KYwC82rMBDzf3q8iEQggrIoWOtdHbQ++PAXjRZjW2GZdlTR0hhBBll5kMe2cp17tPLlZrzuWULMb/FEGu0UTfpj683rNBBYcUQlgTKXSsUZNBENgBe3J5S79EJiUQQghRdid+g9x08G4CjR954O7ZBiPjFkSQlJ5DY18Xpj3dCq1WZlgTQpQfKXSskUYDff8NwBO6HSSe3i1r6gghhCib48uVry2eVv7O3IfZbObvS49w9FIKNRz1zBnZFie74q+1I4QQxSGFjrXyD4UWzwDwnu5HfjskrTpCCCFKKf0qRO9Qrjd98Exr3209z6rD8dhoNXw7PJQAD8cKDiiEsEZS6FizXh9i0DkQqj1L5u7v1U4jhBDCUp34DcwmqNUGagTfd9dNJxP4Yv1pAD58rCkd6tWshIBCCGskhY41c62Fodt7AIzKmM/ps6dVDiSEEMIiHcvvttbs8fvudjYhjdcWR2I2w7DwQEa0D6qEcEIIayWFjpVz7DyBC/YhuGiyYPUbYDarHUkIIYQlSY2H2N3K9ft0W7uRmcvYBQdIz8kjrI4H/xzQtJICCiGslRQ61k6r42r3LzCYdTRK2Y7h2Eq1EwkhhLAkx1cCZggIB7faRe6SZzQxcdEhoq9l4u/uwHfD22BrIx9BhBAVS37LCELbdeIHrfJfONPqNyHrusqJhBBCWIyC2daa3rvb2qdrT7HjXBIOeh1zRralprNdJYUTQlgzKXQENjotyaGvcs5UC7ucJNjwntqRhBBCWIIbsRC3H9BAk4FF7vK/AxeZt/MCANOebkmTWq6VGFAIYc2k0BEADGpbl7cNY5Ubh36GqC2q5hFCCGEBjq9UvgZ1Ale/u+6OiEnmvRXHAHitZwMebn73PkIIUVGk0BEANPJ1weAfxoK83sqG31+H3ExVMwkhhKjiCrqtNbt7EoL4G1mM/+kguUYTfZv68FrPBpUcTghh7aTQEYWeDK3N53lDSNLUhOsXYOtnakcSQghRVSVHQfwh0Ggh5PZua1m5Rsb/FEFSeg6NfV2Y9nQrtFqNSkGFENZKCh1RaECLWuTqnHk7Z7SyYdd/IT5SzUhCCCGqquMrlK91uoKzV+Fms9nM35cd4eilFGo46pkzsi1OdjYqhRRCWDMpdEShGk629GrizSZTKMdr9AKzEVa9AsY8taMJIYSoao7lFzp3zLb23dbz/H44Hhuthm+HhxLg4ahCOCGEkEJH3OHJUGUNhNdTnsFs7w5XjsDu/6obSgghRNVy7SwkHAWtDYQMKNz854kEvlh/GoAPH2tKh3o11UoohBBS6IjbdW3ghaezHWczHTne/B1l45YpcO28usGEEEJUGdoTK5UrdbuDowcAZxPSeH1JJGYzDA8PZET7INXyCSEESKEj7mCj0/J4G38AZlxrq/wRy8uG318Ds1ndcEIIIaqEwkInv9vajcxcXlhwgPScPMLqePDhgKbqhRNCiHxS6Ii7PNFG6b626VQi13t8DjYOEL1dWV9HCCGEVXPJikOTdBp0ttD4EfKMJiYuOkTMtUz83R34bngbbG3k44UQQn3ym0jcpZGvCy1qu5FnMrMyxhZ6vKvcseFdSEtQN5wQQghV+V/fo1yp1xMc3Pn32pPsOJeEg17HnJFtqelsp25AIYTIJ4WOKFLBpARLI+IgfAL4tYLsFPjjLXWDCSGEUI/ZjP+Nvcr1Zo/zv/0Xmb8zGoBpT7ekSS1X9bIJIcQdpNARRRrQoha2Oi3H41M5kZAJj80AjQ5O/AYnV6sdTwghhBoSjuKck4DZxp5Dju15d+VRAF7r2YCHm/upHE4IIW4nhY4oUsGaOgDLDsaBXwvo9Kpy59o3ldYdIYQQVkV78jcAsgIfYuziMxiMZvo19eW1ng1UTiaEEHeTQkfcU0H3tZWHLmEwmqDb2+BRD9Iuw5//VDecEEKIymU2F8629nVCc5LSc2js68KXT7dEq9Wom00IIYoghY64p4I1da5l5LLldCLoHeCx/yh3HpgHMbvUDSiEEKLyxB9EcyOGbOxYcK0xHk62zBnZFic7G7WTCSFEkaTQEfd065o6SyMuKhuDO0ObUcr1Va+CIVuldEIIISrVseUAbDS2xqB14NvhbQjwcFQ5lBBC3JsUOuK+CtfUOXmVa+k5ysbeH4OzL1w7C9u+UDGdEEKISmEykXdUKXRWGzvw/iONaV+3psqhhBDi/qTQEfd165o6qw7HKxsd3OGRqcr1ndPhyjG14gkhhKgMcfuxSY8nzexArFNzhoUFqJ1ICCEeSAod8UC3ralTIGSAcjHlwapXwGRUKZ0QQogKdzy/25oplIYeepXDCCFE8UihIx7otjV14lNv3vHwF2DnBvEHYe8s9QIKIYSoOCYj5uMrAVhjDKeRm1ndPEIIUUxS6IgHumtNnQKuftDnY+X65k+UWdhSLmKTlwFmkwpJhRBClLvY3WjSr5BqduSEQ1tqyfwDQggLIXNCimJ5MrQ2a49eYeWhS7zzcGP0uvwaufVIOPIrxOyA+Q+jBx4BODoBbF3A3hXsXO/z1e32265+4FFXxWcqhBDiNvmzra03tiW8sS8azUWVAwkhRPGUqtD55ptv+OKLL7hy5QotW7ZkxowZhIWFPfC4xYsXM3ToUAYOHMjKlStL89BCJQVr6iSl57DldCK9m/god2i1MHAGLH0OUuIwZ6eiMebPzpabply4VLIH6/w36PXP8owvhBCiNIx5cOI3AFabOvBo/ZoQL4WOEMIylLjQWbJkCZMmTWLmzJmEh4czffp0+vbty+nTp/H29r7ncdHR0bz55pt06dKlTIGFOgrW1Jm9LYqlERdvFjqgtMCM2wJAnsHAutW/0e+hjuiNWZCdAjmpkJ1axNeUu7dfOwc7voIawRA6Wo2nKoQQokD0dshMItnszE5TUz6tV5MD8WqHEkKI4ilxoTNt2jTGjh3LmDFjAJg5cyZr1qxh3rx5vPPOO0UeYzQaGT58OB999BHbt2/nxo0bZQot1PFEm9rM3hZVuKZOTWe7IvczafXg5AX6UszMs+Uz2DIF1ryhFDt1u5cpsxBCiDLIn21tnbEd9X1r4O1S9O99IYSoiko0GUFubi4RERH06tXr5gm0Wnr16sXu3bvvedzHH3+Mt7c3zz//fOmTCtUVuaZOeev2NjR/Spm2eslISDxTMY8jhBDi/owGOPk7oHRb69rQS+VAQghRMiVq0UlKSsJoNOLj43Pbdh8fH06dOlXkMTt27GDu3LlERkYW+3FycnLIyckpvJ2aqkxpbDAYMBgMJYlceNytXy1BVc08uJUfR+JS+PXARZ4Nq33X/eWSu/9X6K7HoI3bh3nhU+SNWQ+OFbcCd1V9re/HEjODZea29syW9LxFOYvaClnXScaNvaYQJjTwVDuREEKUSIXOupaWlsaIESOYM2cOnp7F/wU5ZcoUPvroo7u2b9iwAUfH0s9ruXHjxlIfq5aqltnOADqNjhOX05jz61r8nYrer6y5bd1H0vXqBZxuRJM6ewC76r+tdImrQFXttS4OS8wMlpnbWjNnZmaWQxJhkfK7ra3OC8PGRk+7YA9Alg4QQliOEhU6np6e6HQ6EhISbtuekJCAr6/vXfufP3+e6OhoBgwYULjNZFJ+SdrY2HD69Gnq1at313GTJ09m0qRJhbdTU1MJCAigT58+uLq6liQyoPxHcuPGjfTu3Rt9acaNqKAqZ96aGcn6E1dJdK7H2Icb3XZfueZObI35x4epmXGGR4zrMD7yLWg0ZTtnEarya30vlpgZLDO3tWcuaFEXViYvB06uBmC1sT1h9T2w1+swGKTQEUJYjhIVOra2toSGhrJp0yYGDRoEKIXLpk2bmDhx4l37N27cmKNHj9627b333iMtLY2vv/6agICAIh/Hzs4OO7u7Bzzq9foy/dEu6/FqqIqZn24XyPoTV/n9yGX+8UiTm2vq3KJcctdqBk8vgJ+fQHvsV7RejaDbW2U7531Uxdf6QSwxM1hmbmvNbGnPWZST85shJ4XruprsNzdisnRbE0JYoBJ3XZs0aRKjRo2ibdu2hIWFMX36dDIyMgpnYRs5ciT+/v5MmTIFe3t7mjVrdtvx7u7uAHdtF5aja8Oba+psPZ1IryY+Dz6otOo9BI9MhdV/g7/+BTXrQrMnKu7xhBBCFC4SusoQhhktXRrIRARCCMtTolnXAIYMGcLUqVP54IMPaNWqFZGRkaxbt65wgoLY2FguX75c7kFF1aHXaRncuhYASyPiKv4B2z4HHfJbDFdMgIv7Kv4xhRDCWhmy4PRaAH4zhOPpbEdjXxeVQwkhRMmVajKCiRMnFtlVDWDLli33PfaHH34ozUOKKuaJ0NrM2X6BTacSSM7IxcPJtmIfsPfHkByl/PH9ZSiM3Qw1gir2MYUQwhqd3Qi56aTa+nAouz6DG3iiqYDxkUIIUdFK3KIjBEBjX1ea+7thMJpZFXmp4h9Qq4PH54Bvc8hMgkVDIDul4h9XCGExvvnmG4KDg7G3tyc8PJx9++7d+tu9e3c0Gs1dl0ceeaQSE1dR+bOt/antqHRbayjjc4QQlkkKHVFqT4Yq6+gsPVgJ3dcA7Jxh6BJw8YPEk/DrGDDmVc5jCyGqtCVLljBp0iQ+/PBDDh48SMuWLenbty9Xr14tcv/ly5dz+fLlwsuxY8fQ6XQ89dRTlZy8isnNgDPrAfghpQ0AnepLoSOEsExS6IhSe6xlLfQ6DccupXLyciVNQevmD0N/Ab0jnN8E694Gs7lyHlsIUWVNmzaNsWPHMmbMGJo0acLMmTNxdHRk3rx5Re7v4eGBr69v4WXjxo04OjpKoXNmHRgyyXAM4Ii5Lo19XfB2sVc7lRBClIoUOqLUajjZ0itEmYRiWWVMSlCgVmulGxsa2P897J1VeY8thKhycnNziYiIoFevXoXbtFotvXr1Yvfu3cU6x9y5c3nmmWdwcrrHKsjWIn+2tT2OXQENXRvKbGtCCMtVqskIhCjwZGht/jh2hZWRl3j74caV98Ahj0Lvj2DjB7B+MnjUgYZ9K+/xhRBVRlJSEkajsXD2zwI+Pj6cOnXqgcfv27ePY8eOMXfu3Hvuk5OTQ05OTuHtgoVUDQYDBoOhxJkLjinNsRUmJw2bsxvRAPNvtAagQ50at2WskrkfwBIzg2XmlsyVxxJzl2fm4p5DCh1RJneuqdOtgUflPXjHVyHpLBz6CZY+B8+tB19Zn0kIUTJz586lefPmhIWF3XOfKVOm8NFHH921fcOGDTg6Opb6sTdu3FjqY8tb7eRdhBpzuKH3ZUeaH3qNmaSTe1l75u59q1Lu4rLEzGCZuSVz5bHE3OWROTMzs1j7SaEjyqRgTZ052y+wNCKucgsdjQYemQY3YuDCNmUmtrGbwMW38jIIIVTn6emJTqcjISHhtu0JCQn4+t7/90FGRgaLFy/m448/vu9+kydPZtKkSYW3U1NTCQgIoE+fPri6upY4s8FgYOPGjfTu3Ru9Xl/i4yuC7n8LAThf61E4rSG8Xk0GDQi9bZ+qmPtBLDEzWGZuyVx5LDF3eWYuaFV/ECl0RJnduaZOpbKxhacXwPe94dpZ+OUZGL0WbEv/H1YhhGWxtbUlNDSUTZs2MWjQIABMJhObNm2655pvBX799VdycnJ49tln77ufnZ0ddnZ2d23X6/Vl+oNd1uPLTdYNOL8ZgGW54QB0a+h9z2xVJncJWGJmsMzckrnyWGLu8shc3OOl0BFlVrCmztFLKaw+eoVKn4jUoQYMWwLf94L4Q7BiPDz1I2jvM9eGMQ8yEiE9Ac2NSwRe24p2xynISoL0BEi/qnz1qAePzQBXv8p7PkKIEps0aRKjRo2ibdu2hIWFMX36dDIyMhgzZgwAI0eOxN/fnylTptx23Ny5cxk0aBA1a9ZUI3bVcWoNmAyYvBqzPM4FMNG5gUwrLYSwbFLoiHLxZGhtjl5KYfmhS4wLUiFAzXrwzEL48TE4uQr++DsEtoe0K7cXLgVfM68ByrTUNkBrgNgizpscpRRQzy4D70qcbEEIUSJDhgwhMTGRDz74gCtXrtCqVSvWrVtXOEFBbGws2jv++XH69Gl27NjBhg0b1IhcteQvEhrn14/siyY8ne1o7OuicighhCgbKXREuXisZS3+teYEx+PTuKTWPwGDOiqtLytfhP1zlMv9aHTg7I3ZyYuETA3edZqhdfUFZx9w9gZbF1j3jtIlbl4fGLpYeQwhRJU0ceLEe3ZV27Jly13bGjVqhFnW4YKcdIjaAsA6OgJ5dG3giUajUTWWEEKUlRQ6olwUrKnzx7Er7L6qZaxaQVoNhcwkiFwEjjXzi5b8wuW2rz7g6AFaHXkGA3vXrqV///5o7+zz6b9BmeQgbh8sGASPz4amg9R4ZkIIUTHi9oEpD9wCWXXJEUilS0PptiaEsHxS6Ihy82z7IP44doW9VzVcz8zF202lwXEdX1Eu5cHRA0atgmUvwKnV8OtoSJsC7SeUz/mFuBeTCa5fUH4G7d2VWQaFqAjROwHI8Q/n2EFlJqNO9aXQEUJYPil0RLnpWK8mTWu5cDw+jYV7L/K3PtVkTIveQZnZ7Y+/w/7vle5sqZeg18f3n/BAiNLKSIIFAyHhmHJbZ6e0Qrrkt0a6+N5smXTxzW+p9AUnL9DJr3VRQjG7ADhh2xyAED9XvF3s1UwkhBDlQv4iinKj0Wh4oVMwf/v1KAv2xDLhoQbY63VqxyofWh30nwqu/rDpI9g1A1LjYdB3YHP3lLNClFrWdfhpkFLkaHRgNoIxB1Jilct9acDJExsnH9pnadH9/ocyY6CLL7QeIdOui7sZsuDSAQDWp9cDoIvMtiaEqCak0BHlql9THz5ZdYTkTAO/RsQxor0aU7BVEI0GukwC11rw28twbJkyi9uQn8HBXe10ojrISYOfn4QrR8HJG8b8AW6182cMzL8UzCSYdiV/FsErkJYAGVfBbIKMRDQZifgAHDly89xtRqr1rERVdikCjLmYnX1YEWMH5EqhI4SoNqTQEeXKRqflIT8Ty6J1fL89imFhgei01WxsQctnlK5CS0ZC9HaY/zAMXwpu/monE5YsN1OZ+OLSAXDwgJG/gWd95b4aQcrlfkxGZdr0tCvk3bjE0d1/0qKuD7rMRMhOUbpgCnGn/G5rab7hJBzLxc5GS7tgD5VDCSFE+ZABBqLchXubqeGoJ+ZaJuuPX1E7TsWo1wPGrFXGRVw9AXN7Q8IJtVMJS2XIhsXDIGYn2LnCiOXg06Rk59Aq06Xj1wJz/V7E1uyKqdPfoP8XymyBQhQlegcAx3RNAQir41F9uhwLIayeFDqi3NnpYHhYAACztp6vvutU+LWAFzaCZ0NlcoJ5/Qo/NAhRbEaDMptf1F+gd1JaB2u1VjuVsAZ5uXBxHwBrUusA0LWBl5qJhBCiXEmhIyrEs+0DsbPRcjguhT1RyWrHqTjugfDceghoDzkp8NNgZeyOEMVhzFOmLj/zB9jYw7DFEBiudiphLS5HQl4WZgcPlsc5A8j6OUKIakUKHVEhajrZ8nRbpVVn9rbzKqepYI4eMHIlhAwAYy4sfQ52/VftVKKqM5lg1UQ4sRK0ehiyEOp0VTuVsCYxyvo5yZ6hZBnAy8WORj4uKocSQojyI4WOqDAvdKmDVgN/nU7k1JVUteNULL0DPPUjhI1Xbm94F9ZNVj7MCnEnsxnWvgGHf1GmkH7qB2jQS+1UwtrkT0RwSKOMz+lS3xONLEwrhKhGpNARFSaophMPN/MDYPa2KJXTVAKtDh7+P+j9sXJ7z7ew7DlloLkQBcxmWP8uHJgHaJSJAkIeVTuVsDYmI8TuAWDVjWBAuq0JIaofKXREhRrXtS4AqyLjib+RpXKaSqDRQKfX4PHvle5Ix1fAz48ri0AKAfDXv2HPN8r1x2ZA8yfVzSOs05WjkJOKydaF1VeVAqdTfSl0hBDVixQ6okK1DHCnQ92a5JnMzN95Qe04lafFU/DsMmWq4JidMKMtbHgPks6qnaxqMZuVAfnWYttU2PaFcr3/VGgzQt08wnrld1u7WqM1JrSE+Lni7WKvcighhChfsmCoqHDjutVld9Q1Fu2NZWKPBrg56NWOVDnqdlNWtl88FG7Ewq4ZyiWoE7QZBU0es95FHFMuwpFf4NDPkBYPOjuwdQJbZ7Bzzr+ef9v2jtuF99+x3d4NHGqAvTtoq+D/cHZ/C5s/Ua73/gTCxqqbR1i3/IkIIswhAHRtIK05QojqRwodUeG6N/SikY8LpxPSWLg3hpe611c7UuXxbQavHIKzG+Dgj8rXmJ3K5Y+3oMUzEDoKfJqqnbTiGfPQnF5L+/NTsTl0FLhlfSVjDmTlQFY5TEWu0SrFjkMNZUY8hxrg4HHH7Tvuc/RQiqWKGoh9YB6sn6xc7/4P6PRqxTyOEMVhMhW26CxPDgagi6yfI4SohqTQERVOo9EwvltdJv3vMPN3RvN85zrY2VjRyts6G2jcX7mkXILIhXDwJ0iJhX2zlIt/W6Xgafq40mJRnVyPgUM/wcGfsEm/gk/B9jrdIHS0MqWyIRNyM/Iv6ZCTfvN6UV9z0m/Zlr896wYYMsBsUgqmrGRILsHU5lq9UvD4NofADhDUEWq1Acr4s3p4MayepFzv9Bp0+3vZzidEWSWegqxkTDYObEv3x85GS9vgGmqnEkKIcieFjqgUA1rWYur608SnZLPy0CWGtAtUO5I63PyVD7pd3oCovyDiRzi9Fi4dUC7r/gHNn1AKgFqt1U5bekYDnFkPEfPh3CYKWm/Mjp6ccw4n+IkP0fs0Kv/HzctRJn7Iug6ZyfnXk+++nXn9luvJSouSyQDpCXAuAc79qZxPZ4uuVhtCcr3QnLOFOh2VLnLFdXwFrJygPP+wcdDro4prNRKiuPK7rV12aY4h3YYudTyw11vRP5+EEFZDCh1RKfQ6Lc91rsO/1pxk1rYongoNQKu14g98Wh3U76Vc0q9C5CKla1tyFET8oFx8W0CbkdDi6ZJ9uFbT9Rg4uEAZe5N+5eb2ut0hdDR59fpwYv2fBHvUrZjHt7EDF1/lUhK5mUrhk3YF4vZD7C6I2Q0ZV9Fe3ENDgCW/K93ifJpCYEcI6qB8dfEp+pyn18GyF5QWptYjoN//SZEjqob8bmt7TQXjc6TbmhCiepJCR1SaZ8IC+XrTWaISM/jzZAJ9mpbww2h15ewNnV9XujVFb1daeU6ugitHYO2bsOF9aDpY6drm1Rhs7MFchQbbGw1wZh0cmA/nN1M49sbJC1oNV4q1mvWUbQaDajHvy9ZRubj5Q+1QaP+iMiNcchR5UduJ372UAHMcmusXlGl5rxxVuhwCeNS9pfDpoNyO+gv+NwJMedD8KRjwddWcIEFYH7O5sEVnRXIQIOvnCCGqLyl0RKVxtrNhRPsgvt1yntnboqTQuZNGo4xXqdNV6U51eLHSypN4Cg4vUi759MCjGj3aEw5K4WNjr7RmlOSr3v7msXqH/O0O995uY6fc1tkqWa9H39J6k3DzedTtDqFjoFF/sLGt7Fex/Gg0ULMeZtdADsXXwK9/f/RZSRC7W7nE7IaEY0orXHIURP6sHOfsA9mpYMyFkAEwaKbSgidEVZAcBekJmLS27Muui5eLHY18XNROJYQQFUIKHVGpRncK5vvtFzgQc50D0cm0DfZQO1LV5OgBHV6C9hOUrlQRPyrjPQwZhbvozAbIMUBOaiWH0yhFUF42t7XetH5Wab2pqG5pVYGrHzR7XLmAMgHCxX03u7rFH7xZ9DXoA0/MUyajEKKqiN4BwCWnJuRk2tKlgSca6VIphKim5C+wqFTeLvY83safxfsvMmtblBQ6D6LRQECYchn4X6WbWF42hux0/tr4Bw917YQeo1J05OUU76shO/92Nhiy8rdnPXh74XTQZmU7QN2HoO0YaPiwZbfelJaDOzTso1xAed0uHYSUOGgy0DpfE1G15Y/P2WlQJgPpIuvnCCGqMSl0RKUb27UuSw5cZOOJBM5dTae+dzWbTrmiaDTKB2cbW9A5kGXrCR71QF8JC7CazUpXrMJCKQv0TuBc/EHMOXlGVhy8RFZOBeZUm94BgjupnUKIe8svdFanKi2vnepLoSOEqL5kdKyodPW8nOkdosxU9f32KJXTiGLRaJQxOvZuyixjNYJLVORkG4yMWxDBOyuOM/+0DrPZ/OCDhBDl60YspMRi0ug4aGpAiJ8r3i72aqcSQogKI4WOUMX4bsp/E5cfvMTV1GyV04iKlG0wMu6nCLaeSQQgNkPD9nPXVE4lhBXKb825aN+ITOzpKt3WhBDVnBQ6QhWhQR60DapBrtHE/F3RascRFSTbYGTsggNsO5OIg15Ht/wPVjP+Oi+tOkJUtvyJCLblNACgi6yfI4So5qTQEaoZ301ZW+XnPTGk5+SpnEaUt4IiZ/vZJBz0OuaPacdnjzdFrzETeTGFndKqI0Tlym/R+Su7AXY2WtoG11A5kBBCVCwpdIRqejb2pp6XE2nZeSzeF6t2HFGOsnKNvPCjUuQ42ur4YUw72tetiaezHR19lJacrzedkVYdISpL2hVIPo8ZDQdMjQivWxN7vazvJISo3qTQEarRajWM66qM1Zm74wK5eSaVE4nykJVr5Pkf97PjXEGRE0Z43ZqF9/f0N2Fro2V/9HX2RCWrmFQIKxKzE4BYfV1ScaKLzLYmhLACUugIVQ1q7Y+Xix2XU7L5/XC82nFEGWXm5vHcD/vZdf4aTrY6fnwujLA6t6+V5GYLT4f6A/CfTWfViCmE9cnvtrYlpyEAXRpKoSOEqP6k0BGqsrPR8VynOgDM3hYlXZksWEGRszvqGs52Nix4Pox291gQdlyXOuh1GnZHXWPfBWnVEaLCRSstOrvyGuHlYkcjHxeVAwkhRMWTQkeoblh4IE62Ok4npLElfwpiYVkyc/MYM38/e6KScbaz4cfnwggNKrrIAfBzs+eptgEAzNgsrTpCVKiMa5B4EoD9psZ0aeCJRqNROZQQQlQ8KXSE6twc9AwLDwRg1tbzKqcRJZWRk8fo+fvZeyEZl/yWnNCgB8/mNKFbPWy0GrafTeJg7PVKSCqElYrdDUCMLpBkXOkq00oLIayEFDqiSniucx1stBr2RCVz+OINteOIYkrPyWP0/H3su6XIaRNYvClrAzwceaJNbQBmyFgdISpO/kQE2/PXz+kkExEIIayEFDqiSvBzc2BgK2WA+uxtUSqnEcWRnpPH6Hn72B99HRd7G356IZzWxSxyCrz0UD10Wg1/nU7kSNyNigkqhLXLL3T2mkII8XPFy8VO5UBCCFE5pNARVUbBVNN/HLtMdFKGymnE/aRlGxg1bx8HYpQi5+fnw2kV4F7i8wTVdGJQq4IZ2M6Vc0ohBNkpcOUoAPtMjenaQFpzhBDWQwodUWU08nXhoUZemMzw/Q5p1amqCoqciJjruNrbsPCFcFqWosgp8PJD9dBq4M+TCRy7lFJ+QYUQELsXzCYu4ksCHnSR8TlCCCsihY6oUsZ3qwfArwfiSErPUTmNuFNqtoGR8/ZxMPYGbg56Fr7Qnha13ct0zrpezjzWshYA/90srTpClKuYgmmlG2Nno6VtcMm6lwohhCWTQkdUKeF1PGgZ4E5OnokFu2PUjiNukZptYOTcfRwqLHLCaV7brVzOPbFHfTQaWHf8CqeupJbLOYUQFBY6+0yNCa9bE3u9TuVAQghReaTQEVWKRqNhfP5YnQW7o8nMzVM5kQBIyTIwYu4+Ii/ewN1RKXKa+ZdPkQNQ39uF/s39AJghrTpClI/cDIg/BMBec4iMzxFCWJ1SFTrffPMNwcHB2NvbEx4ezr59++657/Lly2nbti3u7u44OTnRqlUrfvrpp1IHFtVf36a+BNV05Eamgf/tv6h2HKuXkmVg5Ny9HK6gIqfAKz3qA7D26GXOJqSV+/mFsDpx+8GUR7y5JnFmTzpLoSOEsDIlLnSWLFnCpEmT+PDDDzl48CAtW7akb9++XL16tcj9PTw8ePfdd9m9ezdHjhxhzJgxjBkzhvXr15c5vKiedFoNY7sorTrf77hAntGkciLrlZJpYMTcvRyOS6GGo55FL7Snaa3yL3IAGvu60q+pL2Yz/PcvadURosyiC6aVboyXiz2NfFxUDiSEEJWrxIXOtGnTGDt2LGPGjKFJkybMnDkTR0dH5s2bV+T+3bt3Z/DgwYSEhFCvXj1ee+01WrRowY4dO8ocXlRfT4bWpqaTLXHXs1h77IracaxSSqaBZ+fu5UhcCh5Otiwa254mtVwr9DFf6am06vx+OJ7ziekV+lhCVHsxuwBl/ZwuDTzRaDQqBxJCiMplU5Kdc3NziYiIYPLkyYXbtFotvXr1Yvfu3Q883mw2s3nzZk6fPs3//d//3XO/nJwccnJuzriVmqoMTjYYDBgMhpJELjzu1q+WwBIzQ/nl1gHPhgfw9ebzzNxyjn4hFfdH2hJf64rOfCPTwOgfD3A8Po0ajnoWjA6lvqdDmR/vQbkbejnSs7EXm04l8t9NZ/j8ieZlerzyYO0/H5b0vMUtDNlK1zWUiQhelWmlhRBWqESFTlJSEkajER8fn9u2+/j4cOrUqXsel5KSgr+/Pzk5Oeh0Or799lt69+59z/2nTJnCRx99dNf2DRs24OjoWJLIt9m4cWOpj1WLJWaG8sntYwBbrY4Tl9OY/ss6GrmbyyHZvVnia10RmTMM8O1JHXEZGpxtzIxrkMX5g9s5X46Pcb/crfSwCRt+i4ynmeYinvbl+MBlYK0/H5mZmeWQRFS6+INgzCHR7EaU2Y9O9WV8jhDC+pSo0CktFxcXIiMjSU9PZ9OmTUyaNIm6devSvXv3IvefPHkykyZNKrydmppKQEAAffr0wdW15F1nDAYDGzdupHfv3uj1+tI+jUpliZmh/HOfsjnFgj2xHDF487f+oeWQ8G6W+FpXVObrmbmMmh9BXEYaNZ1s+WlMWxr4OJfb+Yub+0DOQbaeSeKUNohP+zctt8cvDWv/+ShoURcWJubm+Jwmfm54udipHEgIISpfiQodT09PdDodCQkJt21PSEjA19f3nsdptVrq11f63rdq1YqTJ08yZcqUexY6dnZ22Nnd/UtZr9eX6Y92WY9XgyVmhvLLPbZrPRbuu8iOc9c4k5hZYQPhwTJf6/LMnJyRy6gfDnLyShqeznb8MjacBhU0ePlBuV/r1ZCtZ5JYcSieV3s2JMCj9C255cVafz4s7TmLfNE318/p0lBac4QQ1qlEkxHY2toSGhrKpk2bCreZTCY2bdpEhw4din0ek8l02xgcIe4lwMORR/LXV5m9LUrlNNVXckYuw+bs4eTlVDyd7Vg8ruKKnOJoE1iDLg08yTOZ+W5reXaaE8IKGA2YLyrLPuw1hdClvozPEUJYpxLPujZp0iTmzJnDjz/+yMmTJ5kwYQIZGRmMGTMGgJEjR942WcGUKVPYuHEjUVFRnDx5ki+//JKffvqJZ599tvyehajWxuUvILr6yGXirst4gfJ2LT2HYXP2cOpKGl4udiwe15763upPQ/tazwYA/HrgIvE3slROI4QFuXwYjSGDG2YnYnSBtA2uoXYiIYRQRYnH6AwZMoTExEQ++OADrly5QqtWrVi3bl3hBAWxsbFotTfrp4yMDF566SXi4uJwcHCgcePG/PzzzwwZMqT8noWo1pr5u9GlgSfbzyYxd8cFPhyg7piN6iQpPYfhc/ZyOiENbxc7fhnXnnpe5TcmpyzaBnvQoW5NdkddY+bW83w8sJnakYSwDPnjc/abGhNW1wt7vU7lQEIIoY5STUYwceJEJk6cWOR9W7Zsue32v/71L/71r3+V5mGEKDSua122n01i8b6LvNqjATWcbNWOZPGS8ltyziSkV7kip8CrPRuwO+oai/dd5KXu9fF1qyJTsAlRleWvn7PH1JiuDWR8jhDCepW465oQauhc35Mmfq5kGYz8vCdG7TgWLzEth6GzlSLHx1XprlbVihyA9nU9CAv2INdoYtY2GasjxAOZjJjzC519phC6yPo5QggrJoWOsAgajYbx3ZSxOj/siibbYFQ5keW6mpbN0Dl7OHs1HV9XexaP60DdKljkgPJ9fzV/rM6ivbFcTctWOZEQVVzCcTQ5qaSZHUhyakjDcpweXgghLI0UOsJiPNLcD393B65l5LLsYJzacSzS1dRshs7ew7mr6fi52bN4XHvqeDqpHeu+OtWvSZtAd3LyTMyRmfeEuL/88TkRpoZ0aOiDRqNROZAQQqhHCh1hMWx0Wl7oUgeAOduiMJrMKieyLFdTs3lmzh7OJ2ZQK7/ICa7iRQ7c3qrz855YrqXL1PRC3FPMzfVzukq3NSGElZNCR1iUIe0CcHfUE30tkw3Hr6gdx2IkpGbzzOw9RCVm4O/uwOJxHQiqWfWLnALdGnrRsrYbWQYj3++4oHYcIaomsxlTdMFEBCF0qi8TEQghrJsUOsKiONraMLJ9EAAzt0VhNkurzoNcSckvcpIKipz2BNZ0VDtWidzaqrNgVzTXM3JVTiREFZR4Gm3WNbLMtuT5tMTLxU7tREIIoSopdITFGdkxGDsbLYcv3mDfhWS141Rpl1OyeGb2bi7cUuQEeFhWkVOgR2NvmtZyJSPXyLyd0qojxF3yu60dNDWgQyM/lcMIIYT6pNARFsfT2Y4nQ2sDMEsGp9+TUuTsIfpaJrVrWHaRA7e36vywM5qUTIPKiYSoWm5OKy3jc4QQAqTQERZqbJe6aDSw+dRVziSkqR2nyom/oRQ5MdWkyCnQO8SHxr4upOXkMX+XtOoIUchsxnhhOwCR2iaEBtVQOZAQQqhPCh1hkYI9nXi4mS8As6VV5zaXbilyAjwcWDK+A7VrWH6RA6DV3mzVmbfjAqnZ0qojBADXL2CTkUCuWYdNUDj2ep3aiYQQQnVS6AiLNa5rPQB+i7zE5ZQsldNUDXHXM3lm9m5ikzMJ9HBkybgO+Ls7qB2rXPVr6ksDb2dSs/NYsCta7ThCVA3Ryvicw+Z6dGjkr3IYIYSoGqTQERarVYA74XU8MBjNzN8ZrXYc1V1MzuSZ2Xu4mJxFUE1HFo9rT61qVuSA0qozsUd9AL7fcYH0nDyVEwmhPmN+obPXFEIXGZ8jhBCAFDrCwr3YTWnVWbQ31qq7MRUUOXHXswiuxkVOgUdb1KKupxM3Mg38tDtG7ThCqM4QtQOAM3bNaejjrHIaIYSoGqTQERateyMvGvo4k56Tx6K9sWrHUUVBkXPpRhZ1PJ1YPK4Dfm7Vt8gB0N3SqjNnexSZudKqI6xYShz26RfJM2txrt8ZjUajdiIhhKgSpNARFk2j0RSO1Zm34wI5eUaVE1Wu2FuKnLqeTvwytj2+bvZqx6oUj7WsRVBNR5Izclm4xzqLXCEAyJ9W+pg5mPCQQJXDCCFE1SGFjrB4j7Wsha+rPVfTcvjtULzacSpNUjY8O++AUuR4OfHLOOspcgBsdFpefkhp1Zm1LYpsg3UVuUIUyD63DYB9phA61fdUOY0QQlQdUugIi2dro+X5znUAmL09CpPJrHKiihdzLZMZx3VcTsmmnpcTi8e2x8fVeoqcAoNb+1O7hgNJ6Tn8sk9adazdN998Q3BwMPb29oSHh7Nv37777n/jxg1efvll/Pz8sLOzo2HDhqxdu7aS0pafgvE58W5t8HS2UzmNEEJUHVLoiGrhmbAAXOxsOHc1nc2nrqodp8KYTGZ+2hPDwG93cyNXo3RXG9cebysscgD0t7TqzNx6Xlp1rNiSJUuYNGkSH374IQcPHqRly5b07duXq1eL/n2Qm5tL7969iY6OZunSpZw+fZo5c+bg729hUzOnX8Ul/QImswa3xl3UTiOEEFWKFDqiWnCx1zO8fRAAs7adVzlNxYhOyuCZOXt4f+UxMnKN1HEx8/NzbfF2sc4ip8ATbWpTy82ehNQcfj1wUe04QiXTpk1j7NixjBkzhiZNmjBz5kwcHR2ZN29ekfvPmzeP5ORkVq5cSadOnQgODqZbt260bNmykpOXjTl/WunT5gDCQuqpnEYIIaoWKXREtTGmUzC2Oi37o68TEXNd7TjlxmgyM2dbFP2+3sa+C8k46HW8/0hjXm1qxMtFuqnY2miZkN+q8+2W81Y3IYVQWmciIiLo1atX4TatVkuvXr3YvXt3kcesWrWKDh068PLLL+Pj40OzZs349NNPMRot6+fnxqktABygCaFBNdQNI4QQVYyN2gGEKC8+rvYMal2L/x2IY/a288wa0VbtSGV2JiGNvy89QuTFGwB0ql+Tzx5vga+LnrVrj6kbrgp5um1tvtl8jssp2SyLuMSwcJl5ypokJSVhNBrx8fG5bbuPjw+nTp0q8pioqCg2b97M8OHDWbt2LefOneOll17CYDDw4Ycf3rV/Tk4OOTk5hbdTU1MBMBgMGAwlX8Or4JjSHHsr0wWlReeGV1t0mPj/9u49Lqoy/wP458wwM4Dc5Y6AIoY3QIVEvLYr3rppdjGzNCtLk81ddt2yNs1qsy23m2tWtmr7+1labepvy0xCEUzUJBFJRUAUL4CAIiACw8zz+wOZbRIUcJgzZ/i8Xy9e65zznDOfc3aahy/POc/R6403tb8bsVRua1JiZkCZuZnZepSY25KZ27oPFjpkV54cHYbPD5zB9iOlKCirQW8fZT44T28w4oPUAqzYkY8GgxGuOgf85c5+eCA2GJIkKeqLzRp0Dmo8NSYMS/9zBCt35uP+2B7QqDlgTa0zGo3w9fXFRx99BLVajZiYGJw9exZvvvlmi4XOsmXLsHTp0muWb9++Hc7Ozh3OkZyc3OFtHQxXMOlyPgCgTPKz6kQKN5NbLkrMDCgzNzNbjxJzWyJzbW1tm9qx0CG7Eu7rioR+fvj+aCk+Tj+BZVOj5I7UbjlnL+HPX2bjSHHTX4zH9vXFX++J7FJTR3fE9KEhWLmzAGcrr2DTT2fxwK3BckciK/H29oZarUZpaanZ8tLSUvj7+7e4TUBAADQaDdRqtWlZv379UFJSgoaGBmi1WrP2ixYtQlJSkul1VVUVgoODMX78eLi5ubU7s16vR3JyMsaNGweNRtPu7QGg8XgKVNkCRUYfTJtyJ27xc+3QftrDErmtTYmZAWXmZmbrUWJuS2ZuHlW/ERY6ZHfmjgnD90dL8e/Ms/jDuFsUc7N+nd6A91Ly8GHaCRiMAp7OGrx09wDcHR3IJ523gaNGjbljwvDqN0fxj535mDokCA4c1ekStFotYmJikJKSgilTpgBoGrFJSUlBYmJii9uMGDECn376KYxGI1Sqps/J8ePHERAQcE2RAwA6nQ463bX3xGk0mpvqsG9m++JjuxECIEfdD5OCPK36PXGzxy0HJWYGlJmbma1Hibktkbmt2/O3ALI7sT29MCTEAw0GIz7Zc1LuOG2Seeoi7ngvHe+nFsBgFLgjKgDJSWMweVAQi5x2eCguBN27aVF0oRZbsrrOw2MJSEpKwurVq/HJJ5/g6NGjmDdvHi5fvozZs2cDAGbOnIlFixaZ2s+bNw8XLlzAggULcPz4cXzzzTd47bXXMH/+fLkOod0Mp/YCAGr9buX3BBFRC1jokF16akzTNKv/k3EKNfWNMqdpXW1DI17+zxHc98EeFJRdhreLDh88HIOVD/HBfx3hrHXAnNFhAIB/7MyHoQs8PJaaTJs2DcuXL8fixYsxaNAgZGVlYdu2baYJCoqKilBcXGxqHxwcjO+++w4//vgjoqKi8Mwzz2DBggV47rnn5DqE9jE0wq+qaUKS7v1GyhyGiMg28dI1skvj+vkhzLsbTpRfxob9RXhiVJjcka6xp6Acz/37MIouNN1Qd++QHnjxzn7wcL72shlqu0eGheLDXQUoLL+Mr7PPYfIghT0AkjosMTGx1UvVUlNTr1kWHx+PvXv3dnKqznGxMAueuIIq4YTIwcPkjkNEZJM4okN2SaWS8OTVv+yv2V0IvaFzp1xtj+o6PZ7fdBgPrd6Hogu1CHR3xLrZt+LvD0SzyLGAbjoHU2G7Ykc+jBzVITt0OnsnACBP0xfebh2f9Y2IyJ6x0CG7NWVwELxddDh3qQ5fZ9vG/Ro7j53H+LfT8Om+IgDAw8NC8N0fRuO2CF+Zk9mXmfGhcHN0QP75GnybUyJ3HCKLazzZNBJ12U/5zwsjIuosLHTIbjlq1Jg9oicA4MNdJyCEfH/Zr6xtQNLGLMxe9yOKL9UhtLszPpszDK9OiYSro7JmS1ECV0cNHh/ZPKqTx1EdsitCCPhXHQIAePUdJXMaIiLbxUKH7NrDcaHoplXjWEk1dh0vkyXDt4eLkfBWGr46eBaSBDwxshe2LRiN+N7dZcnTVTw6oidcdQ44VlKN7UdKb7wBkUKcKMhDIMpgEBLCB4+ROw4Rkc1ioUN2zd1ZgweHhgAAPko7YdX3Lquux9PrMzFv/U8or6lHuK8L/j1vOP5yZ384adU33gHdFHcnjWlE772UPFlH9Igs6WTWDgDAaW1vOLp4yBuGiMiGsdAhu/fYyF5wUEnYU1CB7DOVnf5+QghsOngG497eha2HS6BWSUj8TTi+eWYkhoR4dvr70389NrIXumnVOFJchZSj5+WOQ2QRjaea78+JkTkJEZFtY6FDdi/Iwwl3RwcCAD7s5FGd4ktX8Ni6H/GHjYdQWatH/wA3bJk/An+aEAGdA0dxrM3DWYuZw3sCAN7bwVEdUr46vQGBvD+HiKhNWOhQl/DkmKYb0789XIyiilqL718IgU/3FWH8W2nYmVsGrVqFhRMisCVxBAYGuVv8/ajtnhjZC04aNbLPXEKqTPdpEVnKwYKz6IeTAAD/gbw/h4joeljoUJfQ198NY27xgVEAH++27KhOUUUtZny8D89vOozq+kYMDvHAN8+MxPzfhEOj5n9icuvuosMj8aEAgHe/56gOKduJQ2lwkIyodPCB5B4sdxwiIpvG38Koy3jq6qjO5wdOo6Km/qb3ZzAKrNldiAnvpGFPQQUcNSr85Y5++HLucPTxc73p/ZPlzBkVBp2DClmnK7E7v1zuOEQd1lj4i/tzJEnmNEREto2FDnUZ8WHdEdXDHXV6I/6Vceqm9pV/vgYPfJiBl78+git6A4aFeWHbgtF4YlQY1Cr+8mFrfFx1mBHHUR1StrLqegRfPgwAcL9lpMxpiIhsHwsd6jIkScJTo3sDAP6VcRJXGgzt3kejwYiVO/Nx+3vpyDx1ES46B/z1noH49Ilh6OndzdKRyYKeGhMGrYMKB05dRMaJCrnjELXbD3nnEaM6DgBwCR8hcxoiItvHQoe6lIkD/RHi5YyLtXp8kXm6XdseOVeFKe//gDe/y0VDoxG3Rfhg+x9GY0ZcKFQcxbF5fm6OmH5r0z0NK1LyZU5D1H7Hf/4J7lItGlSOgH+k3HGIiGweCx3qUtQqCXNG9QIArE4/gUaD8Ybb1Dca8Nb2XNz9j93IOVsFdycN/n5/NNY+eisCPZw6OzJZ0NzbekOrViHjRAX2F16QOw5RmwkhoD+5BwBwxScaUGtkTkREZPtY6FCXc19MMLy6aXH6whV8m1Ny3bZZpytx14rdeG9HPhqNAhMG+CE5aTTujekBiTcCK06AuxPuj+0BAFixI0/mNERtd7y0BhENRwAA3cJ5fw4RUVuw0KEux0mrxsyr0w1/lHaixRvTrzQY8NrWo5j6/g84XlqD7t20WPnQEHzwcAx8XR2tHZksaN5tveGgkpCeV47MUxfljkPUJul5ZRgiNd2f4xA6TOY0RETKwEKHuqSZ8T3hqFHh8NlL2PurS5j2najApHfT8FHaCRgFMGVQIJKTxuCOqACO4tiBHp7OuC+GozqkLAeP5SFMdXUEOvhWecMQESkECx3qkry6aTEttunG9NXpJwEANfWNeHFzDqZ9tBcnK2rh7+aIf86KxTsPDoZXN62MacnSnr4tHGqVhNTcMhw6XSl3HKLrqtMbIIr2AwDqPSMAJ0+ZExERKQMLHeqynhgVBpUEpOdXYFexhDtW7MH/7G16vs70ocHYnjQaY/v5yZySOkNId2dMGRQEgKM6ZPsyT11ElDgGAND24mVrRERtxUKHuqxgL2fcHhkAAPjqpBrnLtWhh6cT1j8Rh2VTo+DmyFmN7Nn83/SGSgK+P3oeOWcvyR2HqFVpeWWIvfr8HCmEhQ4RUVux0KEube6Ypl92JQjMHBaC734/GiPCveWORVYQ5uOCu6MDAXBUh2xbRm4xIqUTTS+C4+QNQ0SkICx0qEsbGOSODXOGYmGUAS/e0RfddA5yRyIrSvxtOCQJ+O7nUhwtrpI7DtE1yqrr4VB6CDqpEUYnb8ArTO5IRESKwUKHurzBwR4I6iZ3CpJDuK8r7rh6+eI/duTLnIboWj/klyPm6mVrqtBhAGd+JCJqMxY6RNSl/e63fQAAW3OKkVdaLXMaInO/vD8HwUPlDUNEpDAdKnRWrlyJnj17wtHREXFxcdi/f3+rbVevXo1Ro0bB09MTnp6eSEhIuG57IiJrivB3xaSB/hAC+MdOjuqQ7RBCYPfxMtOIDoI5EQERUXu0u9DZuHEjkpKSsGTJEvz000+Ijo7GhAkTcP78+Rbbp6amYvr06di5cycyMjIQHByM8ePH4+zZszcdnojIEhJ/Gw4A+M+hcygoq5E5DVGT46U1cLpcBG+pCkKtBQIHyR2JiEhR2l3ovPXWW5gzZw5mz56N/v3744MPPoCzszPWrFnTYvv169fj6aefxqBBg9C3b198/PHHMBqNSElJuenwRESWMCDQHeP6+8EogJUc1SEbkZ5Xhljp6rTSgYMBB53MiYiIlKVdU0w1NDQgMzMTixYtMi1TqVRISEhARkZGm/ZRW1sLvV4PLy+vVtvU19ejvr7e9Lqqqmk2JL1eD71e357Ipu1++b9KoMTMgDJzM7P12HLup0f3QvKRUmzJOoenR/dCaHdnALaduTWWzKyk47Y3aXnlmKjKbXrBaaWJiNqtXYVOeXk5DAYD/PzMnxbv5+eHY8eOtWkfzz77LAIDA5GQkNBqm2XLlmHp0qXXLN++fTucnZ3bE9lMcnJyh7eVixIzA8rMzczWY6u5+3uocKRShRfWp+GhcKPZOlvNfD2WyFxbW2uBJNRedXoD9p2owAuqq894YqFDRNRuVn1oyOuvv44NGzYgNTUVjo6OrbZbtGgRkpKSTK+rqqpM9/a4ubm1+331ej2Sk5Mxbtw4aDTKeNq9EjMDyszNzNZj67kDIivxwEf7kVmhxrJHRiPY09nmM7fEkpmbR9TJug6cvAhdYxUiHM80LWChQ0TUbu0qdLy9vaFWq1FaWmq2vLS0FP7+/tfddvny5Xj99dfx/fffIyoq6rptdToddLprr0XWaDQ31Wnf7PZyUGJmQJm5mdl6bDX30DAfjOrjjfS8cqzeXYRlUyNN62w18/VYIrPSjtlepOeXYYjq6v1iXr0BFx95AxERKVC7JiPQarWIiYkxm0igeWKB+Pj4Vrd744038Morr2Dbtm2IjY3teFoiok62YGzTc3W+zDyNs5VXZE5DXVX68fJfTCvN0Rwioo5o96xrSUlJWL16NT755BMcPXoU8+bNw+XLlzF79mwAwMyZM80mK/jb3/6GF198EWvWrEHPnj1RUlKCkpIS1NRwClcisj2xPb0wvHd36A0CH6QWyB2HuqCy6nocKa4yzbiGEBY6REQd0e5CZ9q0aVi+fDkWL16MQYMGISsrC9u2bTNNUFBUVITi4mJT+1WrVqGhoQH33XcfAgICTD/Lly+33FEQEVnQM1dHdTb+eBolVXUyp6Gu5of8cjigEYPVVwttjugQEXVIhyYjSExMRGJiYovrUlNTzV6fPHmyI29BRCSbYWHdMbSXF/YXXsDq9JOIkeRORF1JWl4Z+klFcEQ94OgOeEfIHYmISJHaPaJDRNQVNN+rs/HAGVQ1yByGugwhBHbn/er+HBW7aiKijuC3JxFRC4b37o6YUE/UNxqx4xy/Ksk6jpfW4Hx1PYaqmwudofIGIiJSMPbeREQtkCTJdK9OeomELzLPQgghcyqyd+l5ZQAEhmmuTi0dPEzWPERESsZCh4ioFaP7eGNcP180CgnPb/4Zv9+Yheo6vdyxyI6l5ZUjEBXwMpQDkhoIGiJ3JCIixWKhQ0TUCkmS8I8Ho3FniAFqlYQtWedw54rdyD5TKXc0skN1egP2nahAbPP9OQFRgLabvKGIiBSMhQ4R0XWoVBLGBQl8+vitCPJwwqmKWty7ag/+ubuQl7KRRR04eRH1jUaMdGyeVpqXrRER3QwWOkREbTAkxANbnxmFiQP8oTcIvPL1ETzxyQFcuMwp2cgymu7PAYZrm+/P4UQEREQ3g4UOEVEbuTtrsOrhIXhlykBoHVRIOXYek95Nw94TFXJHIzuQnleObriCoDo+KJSIyBJY6BARtYMkSXhkWCi2zB+B3j7dUFpVj4dW78XbycdhMPJSNuqYsup6HCmuQrSqABKMgHsw4B4kdywiIkVjoUNE1AH9Atzwn9+NxP0xPWAUwLspeZi+ei+KL12ROxop0A/55QCA291PNS3gaA4R0U1joUNE1EHOWge8eX803pk2CN20auwvvIDb301HytFSuaORwqSZ7s+5etlaCCciICK6WSx0iIhu0pTBQfj6mVEYGOSGi7V6PP7JAbz8nyOobzTIHY0UQAiB9LxyqGBESG1O00JOREBEdNNY6BARWUAv727497zheGxELwDAmh8Kcd+qDJwsvyxzMrJ1uaXVKKuux0DNWTjoawCtC+A7QO5YRESKx0KHiMhCdA5qLL6rP/45KxaezhocPnsJd7yXji1ZZ+WORjZsd17T/Tn3+lz9nATFAGoHGRMREdkHFjpERBY2tp8fti4YhaG9vHC5wYAFG7Kw8ItDqG1olDsa2aC0q4XOCN6fQ0RkUSx0iIg6QYC7Ez6bMwwLxvaBSgK+yDyDu1bsxtHiKrmjkQ2p1xuw7+pzmEIvH25ayBnXiIgsgoUOEVEnUask/GHcLVj/xDD4uelQUHYZk1f+gP/ZewpC8Jk7BBwoqkR9oxEDXGuhqS4CIAE9YuWORURkF1joEBF1svje3fHtgtH4bV9fNDQa8eLmHDy9/idcqtXLHY1ktju/aTTnAf9zTQv8BgCO7jImIiKyHyx0iIiswKubFv+cFYu/3NEPGrWEb3NKcPt76cg8dVHuaCSj5kLHdH8Op5UmIrIYFjpERFYiSRKeGBWGf88bjtDuzjhbeQUPfJiBlTvzYTTyUraupqoBOFZSDQAINT0/hxMREBFZCgsdIiIri+rhga9/NxJ3RwfCYBR487tczFyzH+er6+SORlZ0/JIEABgSqIOmNLtpYQgnIiAishQWOkREMnB11ODdBwfhjXuj4KhRYXd+OW5/Nx1px8vkjkZWcuxqoXOvfxlg1AMufoBHqMypiIjsBwsdIiKZSJKEB24Nxte/G4m+/q4or2nAzDX78bdtx6A3GOWOR51ICIHcyqZCZ6Su+f6cOECSZExFRGRfWOgQEcks3NcVm+ePwMPDQgAAq1IL8MCHGTh9oVbmZNRZjpfWoEovwUmjQo+aq8/P4YNCiYgsioUOEZENcNSo8eqUSLw/YwhcHR1wsKgSt7+Xjm8PF8sdjTrB7oKm2daGhnpCfWZ/00I+KJSIyKJY6BAR2ZDbIwOw9ZlRGBzigeq6Rsxb/xNe2HQYdXqD3NHIgjJPVQIAbg+sBq5cABwcAf8oeUMREdkZFjpERDYm2MsZnz8Vj7ljegMA1u8rwpSVPyD/fLXMychS3psWhT8MbMR411NNCwKHAA5aeUMREdkZFjpERDZIo1bhuUl98a/HhsLbRYtjJdW4a8UP+PzH0xCCz9xROge1Cj1dAffyn5oWcFppIiKLY6FDRGTDRt/ig60LRmFkuDeu6A3487+z8fuNWaiu08sdjSxAMt2fw4kIiIgsjYUOEZGN83V1xL8eG4o/T4yAWiVhS9Y53LliN7LPVModjW6CprEaUkVe04vgofKGISKyQyx0iIgUQKWS8PRt4fj8qWEI8nDCqYpa3LtqDz5OP8FL2RTK63J+0z+8bwGcveQNQ0Rkh1joEBEpSEyoF7Y+MwoTBvhBbxB49ZujePyTA7hwuUHuaNROXpc5mkNE1JlY6BARKYy7swYfPByDVyYPgNZBhR3HzmPSu2nYe6JC7mjUDl41zYUO788hIuoMLHSIiBRIkiQ8Et8Tm58egTCfbiitqsdDq/fi7eTjMBi75qVsK1euRM+ePeHo6Ii4uDjs37+/1bbr1q2DJElmP46OjtYLa2iAZ+2Jpn+HsNAhIuoMLHSIiBSsf6Abvv7dSNwf0wNGAbybkodH1h5AZb3cyaxr48aNSEpKwpIlS/DTTz8hOjoaEyZMwPnz51vdxs3NDcXFxaafU6dOWS2vVHIYaqGHcPICuodb7X2JiLoSFjpERArnrHXAm/dH451pg9BNq8aPJy/ijWw1duSWyR3Nat566y3MmTMHs2fPRv/+/fHBBx/A2dkZa9asaXUbSZLg7+9v+vHz87NaXunMPgCA6HErIElWe18ioq7EQe4ARERkGVMGByE62AOJn2bi53PVyDx1ERMGBsodq9M1NDQgMzMTixYtMi1TqVRISEhARkZGq9vV1NQgNDQURqMRQ4YMwWuvvYYBAwa02La+vh719f8dJquqqgIA6PV66PXtf6aRVNRU6DQGxEDqwPZyaT7WjhyzXJSYGVBmbma2HiXmtmTmtu6DhQ4RkR3p5d0NG+fE4S/rvsPvx3aNS6LKy8thMBiuGZHx8/PDsWPHWtwmIiICa9asQVRUFC5duoTly5dj+PDh+Pnnn9GjR49r2i9btgxLly69Zvn27dvh7Ozc7swa3e3wCrsF1eWeqN26td3byy05OVnuCO2mxMyAMnMzs/UoMbclMtfW1rapHQsdIiI7o3NQ4TeBAho1r05uTXx8POLj402vhw8fjn79+uHDDz/EK6+8ck37RYsWISkpyfS6qqoKwcHBGD9+PNzc3Nr9/nq9HsnJyRg3bhw0Gk3HDkIGSsytxMyAMnMzs/UoMbclMzePqt8ICx0iIlI0b29vqNVqlJaWmi0vLS2Fv79/m/ah0WgwePBg5Ofnt7hep9NBp9O1uN3NdNg3u71clJhbiZkBZeZmZutRYm5LZG7r9vxzHxERKZpWq0VMTAxSUlJMy4xGI1JSUsxGba7HYDDg8OHDCAgI6KyYRERkZRzRISIixUtKSsKsWbMQGxuLoUOH4p133sHly5cxe/ZsAMDMmTMRFBSEZcuWAQBefvllDBs2DOHh4aisrMSbb76JU6dO4YknnpDzMIiIyIJY6BARkeJNmzYNZWVlWLx4MUpKSjBo0CBs27bNNEFBUVERVKr/XsRw8eJFzJkzByUlJfD09ERMTAz27NmD/v37y3UIRERkYSx0iIjILiQmJiIxMbHFdampqWav3377bbz99ttWSEVERHLhPTpERERERGR3WOgQEREREZHdYaFDRERERER2h4UOERERERHZHRY6RERERERkd1joEBERERGR3WGhQ0REREREdoeFDhERERER2R0WOkREREREZHcc5A7QFkIIAEBVVVWHttfr9aitrUVVVRU0Go0lo3UaJWYGlJmbma1Hibm7eubm793m72Fq0hX7JUCZuZWYGVBmbma2HiXmlqNvUkShU11dDQAIDg6WOQkRUddUXV0Nd3d3uWPYDPZLRETyu1HfJAkF/JnOaDTi3LlzcHV1hSRJ7d6+qqoKwcHBOH36NNzc3DohoeUpMTOgzNzMbD1KzN3VMwshUF1djcDAQKhUvNq5WVfslwBl5lZiZkCZuZnZepSYW46+SREjOiqVCj169Ljp/bi5uSnmw9BMiZkBZeZmZutRYu6unJkjOdfqyv0SoMzcSswMKDM3M1uPEnNbs2/in+eIiIiIiMjusNAhIiIiIiK70yUKHZ1OhyVLlkCn08kdpc2UmBlQZm5mth4l5mZm6gxK/f9IibmVmBlQZm5mth4l5pYjsyImIyAiIiIiImqPLjGiQ0REREREXQsLHSIiIiIisjssdIiIiIiIyO6w0CEiIiIiIrtj94XOypUr0bNnTzg6OiIuLg779++XLctLL70ESZLMfvr27WtaX1dXh/nz56N79+5wcXHBvffei9LSUrN9FBUV4Y477oCzszN8fX2xcOFCNDY2WjRnWloa7rrrLgQGBkKSJGzevNlsvRACixcvRkBAAJycnJCQkIC8vDyzNhcuXMCMGTPg5uYGDw8PPP7446ipqTFrk52djVGjRsHR0RHBwcF44403Oi3zo48+es25nzhxoqyZly1bhltvvRWurq7w9fXFlClTkJuba9bGUp+J1NRUDBkyBDqdDuHh4Vi3bl2nZb7tttuuOddz586VLTMArFq1ClFRUaaHlMXHx+Pbb781rbe189yWzLZ4nqnt2De1jxL7pbbkZt/UdfsmJfZLbclta+cZwo5t2LBBaLVasWbNGvHzzz+LOXPmCA8PD1FaWipLniVLlogBAwaI4uJi009ZWZlp/dy5c0VwcLBISUkRBw4cEMOGDRPDhw83rW9sbBQDBw4UCQkJ4uDBg2Lr1q3C29tbLFq0yKI5t27dKl544QXx1VdfCQBi06ZNZutff/114e7uLjZv3iwOHTok7r77btGrVy9x5coVU5uJEyeK6OhosXfvXpGeni7Cw8PF9OnTTesvXbok/Pz8xIwZM0ROTo747LPPhJOTk/jwww87JfOsWbPExIkTzc79hQsXzNpYO/OECRPE2rVrRU5OjsjKyhK33367CAkJETU1NaY2lvhMnDhxQjg7O4ukpCRx5MgRsWLFCqFWq8W2bds6JfOYMWPEnDlzzM71pUuXZMsshBD/93//J7755htx/PhxkZubK55//nmh0WhETk6OEML2znNbMtvieaa2Yd/Ufkrsl9qSm31T1+2blNgvtSW3rZ1nuy50hg4dKubPn296bTAYRGBgoFi2bJkseZYsWSKio6NbXFdZWSk0Go344osvTMuOHj0qAIiMjAwhRNMXpkqlEiUlJaY2q1atEm5ubqK+vr5TMv/6i9loNAp/f3/x5ptvmmXX6XTis88+E0IIceTIEQFA/Pjjj6Y23377rZAkSZw9e1YIIcT7778vPD09zXI/++yzIiIiwuKZhWjqTCZPntzqNnJnFkKI8+fPCwBi165dQgjLfSb+/Oc/iwEDBpi917Rp08SECRMsnlmIpi+5BQsWtLqN3JmbeXp6io8//lgR5/nXmYVQznmma7FvujlK7Jdayi0E+yb2TeaU2C/9MrcQtnee7fbStYaGBmRmZiIhIcG0TKVSISEhARkZGbLlysvLQ2BgIMLCwjBjxgwUFRUBADIzM6HX683y9u3bFyEhIaa8GRkZiIyMhJ+fn6nNhAkTUFVVhZ9//tkq+QsLC1FSUmKW093dHXFxcWY5PTw8EBsba2qTkJAAlUqFffv2mdqMHj0aWq3W7Fhyc3Nx8eLFTsmempoKX19fREREYN68eaioqDCts4XMly5dAgB4eXkBsNxnIiMjw2wfzW0s8d/BrzM3W79+Pby9vTFw4EAsWrQItbW1pnVyZzYYDNiwYQMuX76M+Ph4RZznX2duZsvnmVrGvsnylNwvAeybfqmr9k1K7Jdayt3Mls6zQ7u3UIjy8nIYDAazEwkAfn5+OHbsmCyZ4uLisG7dOkRERKC4uBhLly7FqFGjkJOTg5KSEmi1Wnh4eFyTt6SkBABQUlLS4vE0r7OG5vdpKccvc/r6+pqtd3BwgJeXl1mbXr16XbOP5nWenp4WzT1x4kRMnToVvXr1QkFBAZ5//nlMmjQJGRkZUKvVsmc2Go34/e9/jxEjRmDgwIGmfVriM9Fam6qqKly5cgVOTk4WywwADz30EEJDQxEYGIjs7Gw8++yzyM3NxVdffSVr5sOHDyM+Ph51dXVwcXHBpk2b0L9/f2RlZdnseW4tM2C755muj32T5Sm1XwLYN3X1vkmJ/dL1cgO2d57tttCxRZMmTTL9OyoqCnFxcQgNDcXnn3/OXyg62YMPPmj6d2RkJKKiotC7d2+kpqZi7NixMiZrMn/+fOTk5GD37t1yR2mz1jI/+eSTpn9HRkYiICAAY8eORUFBAXr37m3tmCYRERHIysrCpUuX8OWXX2LWrFnYtWuXbHnaorXM/fv3t9nzTMrDvkk+7JssT0l9kxL7JUBZfZPdXrrm7e0NtVp9zQwVpaWl8Pf3lymVOQ8PD9xyyy3Iz8+Hv78/GhoaUFlZadbml3n9/f1bPJ7mddbQ/D7XO6/+/v44f/682frGxkZcuHDBZo4lLCwM3t7eyM/Plz1zYmIivv76a+zcuRM9evQwLbfUZ6K1Nm5ubh3+Jaa1zC2Ji4sDALNzLUdmrVaL8PBwxMTEYNmyZYiOjsa7775r0+e5tcwtsZXzTNfHvsny7KVfAtg3dbW+SYn90vVyt0Tu82y3hY5Wq0VMTAxSUlJMy4xGI1JSUsyuI5RTTU0NCgoKEBAQgJiYGGg0GrO8ubm5KCoqMuWNj4/H4cOHzb70kpOT4ebmZhoy7Gy9evWCv7+/Wc6qqirs27fPLGdlZSUyMzNNbXbs2AGj0Wj6wMfHxyMtLQ16vd7sWCIiIjrl8oBfO3PmDCoqKhAQECBbZiEEEhMTsWnTJuzYseOaSw8s9ZmIj48320dzm478d3CjzC3JysoCALNzbc3MrTEajaivr7fJ83yjzC2x1fNM5tg3WZ699EsA+6au3jcpsV/6Ze6WyH6e2z19gYJs2LBB6HQ6sW7dOnHkyBHx5JNPCg8PD7OZHqzpj3/8o0hNTRWFhYXihx9+EAkJCcLb21ucP39eCNE0lWBISIjYsWOHOHDggIiPjxfx8fGm7Zun5Bs/frzIysoS27ZtEz4+PhafXrq6ulocPHhQHDx4UAAQb731ljh48KA4deqUEKJpGk8PDw+xZcsWkZ2dLSZPntziNJ6DBw8W+/btE7t37xZ9+vQxmw6zsrJS+Pn5iUceeUTk5OSIDRs2CGdn5w5Ph3m9zNXV1eJPf/qTyMjIEIWFheL7778XQ4YMEX369BF1dXWyZZ43b55wd3cXqampZtMw1tbWmtpY4jPRPE3jwoULxdGjR8XKlSs7PE3jjTLn5+eLl19+WRw4cEAUFhaKLVu2iLCwMDF69GjZMgshxHPPPSd27dolCgsLRXZ2tnjuueeEJEli+/btQgjbO883ymyr55nahn1T+ymxX7pRbvZNXbtvUmK/dKPctnie7brQEUKIFStWiJCQEKHVasXQoUPF3r17Zcsybdo0ERAQILRarQgKChLTpk0T+fn5pvVXrlwRTz/9tPD09BTOzs7innvuEcXFxWb7OHnypJg0aZJwcnIS3t7e4o9//KPQ6/UWzblz504B4JqfWbNmCSGapvJ88cUXhZ+fn9DpdGLs2LEiNzfXbB8VFRVi+vTpwsXFRbi5uYnZs2eL6upqszaHDh0SI0eOFDqdTgQFBYnXX3+9UzLX1taK8ePHCx8fH6HRaERoaKiYM2fONb9UWDtzS3kBiLVr15raWOozsXPnTjFo0CCh1WpFWFiY2XtYMnNRUZEYPXq08PLyEjqdToSHh4uFCxeazaFv7cxCCPHYY4+J0NBQodVqhY+Pjxg7dqypMxHC9s7zjTLb6nmmtmPf1D5K7JdulJt9U9fum5TYL90oty2eZ0kIIdo/DkRERERERGS77PYeHSIiIiIi6rpY6BARERERkd1hoUNERERERHaHhQ4REREREdkdFjpERERERGR3WOgQEREREZHdYaFDRERERER2h4UOERERERHZHRY6RBby6KOPYsqUKXLHICIiAsB+iYiFDhERERER2R0WOkTt9OWXXyIyMhJOTk7o3r07EhISsHDhQnzyySfYsmULJEmCJElITU0FAJw+fRoPPPAAPDw84OXlhcmTJ+PkyZOm/TX/xW3p0qXw8fGBm5sb5s6di4aGBnkOkIiIFIX9ElHLHOQOQKQkxcXFmD59Ot544w3cc889qK6uRnp6OmbOnImioiJUVVVh7dq1AAAvLy/o9XpMmDAB8fHxSE9Ph4ODA1599VVMnDgR2dnZ0Gq1AICUlBQ4OjoiNTUVJ0+exOzZs9G9e3f89a9/lfNwiYjIxrFfImodCx2idiguLkZjYyOmTp2K0NBQAEBkZCQAwMnJCfX19fD39ze1/9///V8YjUZ8/PHHkCQJALB27Vp4eHggNTUV48ePBwBotVqsWbMGzs7OGDBgAF5++WUsXLgQr7zyClQqDrwSEVHL2C8RtY6fVKJ2iI6OxtixYxEZGYn7778fq1evxsWLF1ttf+jQIeTn58PV1RUuLi5wcXGBl5cX6urqUFBQYLZfZ2dn0+v4+HjU1NTg9OnTnXo8RESkbOyXiFrHER2idlCr1UhOTsaePXuwfft2rFixAi+88AL27dvXYvuamhrExMRg/fr116zz8fHp7LhERGTn2C8RtY6FDlE7SZKEESNGYMSIEVi8eDFCQ0OxadMmaLVaGAwGs7ZDhgzBxo0b4evrCzc3t1b3eejQIVy5cgVOTk4AgL1798LFxQXBwcGdeixERKR87JeIWsZL14jaYd++fXjttddw4MABFBUV4auvvkJZWRn69euHnj17Ijs7G7m5uSgvL4der8eMGTPg7e2NyZMnIz09HYWFhUhNTcUzzzyDM2fOmPbb0NCAxx9/HEeOHMHWrVuxZMkSJCYm8jpoIiK6LvZLRK3jiA5RO7i5uSEtLQ3vvPMOqqqqEBoair///e+YNGkSYmNjkZqaitjYWNTU1GDnzp247bbbkJaWhmeffRZTp05FdXU1goKCMHbsWLO/pI0dOxZ9+vTB6NGjUV9fj+nTp+Oll16S70CJiEgR2C8RtU4SQgi5QxB1ZY8++igqKyuxefNmuaMQERGxXyK7wfFHIiIiIiKyOyx0iIiIiIjI7vDSNSIiIiIisjsc0SEiIiIiIrvDQoeIiIiIiOwOCx0iIiIiIrI7LHSIiIiIiMjusNAhIiIiIiK7w0KHiIiIiIjsDgsdIiIiIiKyOyx0iIiIiIjI7rDQISIiIiIiu/P/PTos/Zcr2B4AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test loss: 0.3444, Test acc: 0.8714\n"
     ]
    }
   ],
   "source": [
    "epoch = 100\n",
    "\n",
    "# 单层双边\n",
    "model = LSTM(bidirectional=True)\n",
    "model.to(device)\n",
    "\n",
    "# 1. 定义损失函数 采用二进制交叉熵损失, 先sigmoid再计算交叉熵\n",
    "loss_fct = F.binary_cross_entropy_with_logits\n",
    "# 等价于 loss_fct =nn.BCEWithLogitsLoss()\n",
    "\n",
    "# 2. 定义优化器\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=0.001)\n",
    "\n",
    "# 3.save model checkpoint\n",
    "if not os.path.exists(\"checkpoints\"):\n",
    "    os.makedirs(\"checkpoints\")\n",
    "save_ckpt_callback = SaveCheckpointsCallback(save_dir=\"checkpoints\", save_step=len(train_loader), save_best_only=True)\n",
    "\n",
    "# 4. early stopping\n",
    "early_stop_callback = EarlyStopCallback(patience=5, min_delta=0.01)\n",
    "\n",
    "# 训练过程\n",
    "record_dict = training(\n",
    "    model,\n",
    "    train_loader,\n",
    "    test_loader,\n",
    "    epoch,\n",
    "    loss_fct,\n",
    "    optimizer,\n",
    "    save_ckpt_callback=save_ckpt_callback,\n",
    "    early_stop_callback=early_stop_callback,\n",
    "    eval_step=len(train_loader)\n",
    ")\n",
    "\n",
    "plot_record_curves(record_dict)  # 画图\n",
    "\n",
    "# 评估\n",
    "model.load_state_dict(\n",
    "    torch.load(\"checkpoints/04_embedding_LSTM.ckpt\", weights_only=True, map_location=device))  # 加载最好的模型\n",
    "\n",
    "model.eval()  # 评估模式\n",
    "loss, acc = evaluate(model, test_loader, loss_fct)\n",
    "print(f\"Test loss: {loss:.4f}, Test acc: {acc:.4f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "4a4f776e5d5bfc29",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:14:07.185914Z",
     "start_time": "2025-01-24T04:14:07.184921Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:25:44.520723Z",
     "iopub.status.busy": "2025-01-24T04:25:44.520268Z",
     "iopub.status.idle": "2025-01-24T04:27:51.426188Z",
     "shell.execute_reply": "2025-01-24T04:27:51.425650Z",
     "shell.execute_reply.started": "2025-01-24T04:25:44.520701Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 14%|█▍        | 2744/19600 [02:02<12:33, 22.36it/s, epoch=13]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Early stop at epoch 14 / global_step 2744\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1000x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test loss: 0.3908, Test acc: 0.8593\n"
     ]
    }
   ],
   "source": [
    "epoch = 100\n",
    "\n",
    "# 双层单边\n",
    "model = LSTM(num_layers=2)\n",
    "model.to(device)\n",
    "\n",
    "# 1. 定义损失函数 采用二进制交叉熵损失, 先sigmoid再计算交叉熵\n",
    "loss_fct = F.binary_cross_entropy_with_logits\n",
    "# 等价于 loss_fct =nn.BCEWithLogitsLoss()\n",
    "\n",
    "# 2. 定义优化器\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=0.001)\n",
    "\n",
    "# 3.save model checkpoint\n",
    "if not os.path.exists(\"checkpoints\"):\n",
    "    os.makedirs(\"checkpoints\")\n",
    "save_ckpt_callback = SaveCheckpointsCallback(save_dir=\"checkpoints\", save_step=len(train_loader), save_best_only=True)\n",
    "\n",
    "# 4. early stopping\n",
    "early_stop_callback = EarlyStopCallback(patience=5, min_delta=0.01)\n",
    "\n",
    "# 训练过程\n",
    "record_dict = training(\n",
    "    model,\n",
    "    train_loader,\n",
    "    test_loader,\n",
    "    epoch,\n",
    "    loss_fct,\n",
    "    optimizer,\n",
    "    save_ckpt_callback=save_ckpt_callback,\n",
    "    early_stop_callback=early_stop_callback,\n",
    "    eval_step=len(train_loader)\n",
    ")\n",
    "\n",
    "plot_record_curves(record_dict)  # 画图\n",
    "\n",
    "# 评估\n",
    "model.load_state_dict(\n",
    "    torch.load(\"checkpoints/04_embedding_LSTM.ckpt\", weights_only=True, map_location=device))  # 加载最好的模型\n",
    "\n",
    "model.eval()  # 评估模式\n",
    "loss, acc = evaluate(model, test_loader, loss_fct)\n",
    "print(f\"Test loss: {loss:.4f}, Test acc: {acc:.4f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "7629f1879f0b0c20",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-24T04:14:07.186914Z",
     "start_time": "2025-01-24T04:14:07.186914Z"
    },
    "execution": {
     "iopub.execute_input": "2025-01-24T04:27:51.426994Z",
     "iopub.status.busy": "2025-01-24T04:27:51.426804Z",
     "iopub.status.idle": "2025-01-24T04:31:31.408545Z",
     "shell.execute_reply": "2025-01-24T04:31:31.408026Z",
     "shell.execute_reply.started": "2025-01-24T04:27:51.426970Z"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 22%|██▏       | 4312/19600 [03:35<12:45, 19.98it/s, epoch=21]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Early stop at epoch 22 / global_step 4312\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1000x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test loss: 0.3236, Test acc: 0.8742\n"
     ]
    }
   ],
   "source": [
    "epoch = 100\n",
    "\n",
    "# 双层双边\n",
    "model = LSTM(num_layers=2, bidirectional=True)\n",
    "model.to(device)\n",
    "\n",
    "# 1. 定义损失函数 采用二进制交叉熵损失, 先sigmoid再计算交叉熵\n",
    "loss_fct = F.binary_cross_entropy_with_logits\n",
    "# 等价于 loss_fct =nn.BCEWithLogitsLoss()\n",
    "\n",
    "# 2. 定义优化器\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=0.001)\n",
    "\n",
    "# 3.save model checkpoint\n",
    "if not os.path.exists(\"checkpoints\"):\n",
    "    os.makedirs(\"checkpoints\")\n",
    "save_ckpt_callback = SaveCheckpointsCallback(save_dir=\"checkpoints\", save_step=len(train_loader), save_best_only=True)\n",
    "\n",
    "# 4. early stopping\n",
    "early_stop_callback = EarlyStopCallback(patience=5, min_delta=0.01)\n",
    "\n",
    "# 训练过程\n",
    "record_dict = training(\n",
    "    model,\n",
    "    train_loader,\n",
    "    test_loader,\n",
    "    epoch,\n",
    "    loss_fct,\n",
    "    optimizer,\n",
    "    save_ckpt_callback=save_ckpt_callback,\n",
    "    early_stop_callback=early_stop_callback,\n",
    "    eval_step=len(train_loader)\n",
    ")\n",
    "\n",
    "plot_record_curves(record_dict)  # 画图\n",
    "\n",
    "# 评估\n",
    "model.load_state_dict(\n",
    "    torch.load(\"checkpoints/04_embedding_LSTM.ckpt\", weights_only=True, map_location=device))  # 加载最好的模型\n",
    "\n",
    "model.eval()  # 评估模式\n",
    "loss, acc = evaluate(model, test_loader, loss_fct)\n",
    "print(f\"Test loss: {loss:.4f}, Test acc: {acc:.4f}\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
